wasup
인터넷 네트워크 통신) IP, TCP, UDP, Packet, PORT, DNS 본문
인터넷 통신
IP(Internet Protocol)
: 인터넷 환경에서의 통신 규약
: Network Layer
: 호스트간 통신 담당
IP 프로토콜의 한계
비 연결성
: 대상 서버가 패킷을 받을 수 있는 상태인지 모름.
: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송되는데 상태 확인이 불가함.
비 신뢰성
: 중간에 사라지거나 순서대로 오지 않는경우
: 데이터를 여러개의 조각들로 나눈것이 패킷인데 순서가 뒤죽박죽일 때 해결 불가
-> 이것을 해결해주는 것이 TCP프로토콜.
구분성
: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인경우
Packet
: 인터넷 내에서 데이터를 보내기 위한 경로배정을 효율적으로 하기 위해 데이터를 여러개의 조각들로 나누어 전송하는데 이 조각들이 패킷이다.
: 원래 우체국에서 취급하는 '소포'를 뜻하는데 화물을 적당한 크기로 분할해 행성지를 표시하는 꼬리표를 붙인 형태이다.
: 데이터 통신에서 말하는 패킷이란 데이터와 호 제어 신호가 포함된 2진수(비트)그룹을 말한다.
: 패킷교환 방식에서 데이터를 전송할 때 패킷이라는 기본 전송 단위로 데이터를 분해하려 전송한 뒤 다시 원래의 데이터로 재조립하여 처리한다.
IP 패킷 정보
: 출발지 IP, 목적지 IP
TCP/IP 패킷 정보
: 출발지 IP, 목적지 IP - IP 패킷
: 출발지 PORT, 목적지 PORT - TCP 세그먼트
: 전송제어, 순서, 검증정보 - TCP 세그먼트
: 전송 데이터
* 패킷이나 데이터그램은 비슷한 의미로 사용되는데, TCP와 비슷한 역할의 프로토콜인 UDP에서는 패킷이라는 용어 대신 데이터그램이라고 부른다.
인터넷 프로토콜 스택 4계층 | |||
애플리케이션 | 웹 브라우저 / 네트워크 게임 / 채팅 프로그램 | ||
애플리케이션 계층 | HTTP, FTP | ||
OS | 전송 계층 | TCP, UDP | |
인터넷 계층 | IP(Internet Protocol) | ||
네트워크 인터페이스 | 네트워크 인터페이스 계층 | LAN드라이버, LAN장비 |
TCP, UDP
TCP
: Transmission Control Protocol - 전송 제어 프로토콜
: TCP를 해석하면 전송을 제어하는 규약이라는 뜻이다.
: 연결형 서비스로 가상 회선 방식을 제공
: 흐름 제어 및 홉잡 제어.
: 높은 신뢰성 보장
: UDP보다 속도가 느림
: 전이중(full-duplex)방식, point to point방식
TCP 특징
: 연결지향 - TCP 3 way handshake(가상 연결)
: 데이터 전달 보증 - 중간에 누락되면 알 수 있다.
: 순서 보장
: 신뢰할 수 있음
TCP 3 way handshake
- SYN (접속 요청) : 클라이언트 -> 서버 : 요청을 보냄
- SYN (접속 요청) + ACK (요청 수락) : 클라이언트 <-> 서버 : 요청을 수락하면서 접속요청함
- ACK (접속 요청) : 클라이언트 -> 서버 : 요청 수락
* 개념적으로 연결된 상태이지 실제 물리적으로 연결된 상태는 아님.
순서 보장
: 클라이언트가 보낸 패킷이 서버에 도착했을 때 만약 순서가 뒤섞여 도착한다면
: 서버에서 클라이언트측으로 순서대로 다시 보내라고 요청
UDP
: User Datagram Protocol - 사용자 데이터그램 프로토콜
: 해석하면 사용자 데이터그램 규약이라는 뜻이다 - 데이터를 데이터 그램 단위로 처리하는 프로토콜
: 데이터 그램이란 독립적인 관계를 지니는 패킷이라는 뜻이다.
: 비 연결형 서비스로 데이터그램 방식을 제공
: 정보를 주고받는 신호절차를 거치지 않음
: 신뢰성이 낮음
: TCP보다 속도가 빠름
: 실시간 서비스(streaming)에 자주 사용됨.
: 연결자체가 없기때문에 서버 소켓과 클라이언트 소켓의 구분이 없음.
: 소켓대신 IP를 기반으로 데이터를 전송함.
: 서버와 클라이언트는 1:1, 1:N, N:M등으로 연결될 수 있음
: 데이터그램(메시지)단위로 전송됨
: 전송되는 크기는 65535바이트이며 초과되는 경우 잘라서 보냄.
: 오류 확인 불가
: 신뢰성보다는 성능이 중요시되는 경우 사용
: 기능이 거의 없다고 보면 된다.
* IP와 거의 같다. 단 PORT와 체크섬 정도가 추가되었다. 애플리케이션에서 추가 작업이 필요하다.
PORT
: 모뎀과 컴퓨터 사이에서 데이터를 주고받을 수 있는 통로
만약 한 번에 둘 이상을 연결해야 한다면??
어느 내용을 정확히 어디로 전송해야하는지 구분해야 하는데
이 때 TCP/IP 패킷 정보의 출발지 PORT와 목적지 PORT가 역할을 한다.
같은 IP내에서 프로세스 구분은 포트로한다.
PORT중에서도 0~65535는 할당 가능한 포트, 0~1023은 잘 알려진 포트로, 사용하지 않는 것이 좋다.
IP(Internet Protocol)
: 인터넷 환경에서의 통신 규약
: Network Layer
: 호스트간 통신 담당
* IP는 기억하기 어렵고, 변경될 수 있다.
이런 불편함을 해소하기 위해 DNS를 이용한다.
DNS
: Domain Name System - 도메인 네임 시스템
: 전화번호부 역할을 하며 도메인 명을 IP주소로 변환한다.
DNS Server | |
도메인 명 | 아이피 |
google.com | 200.200.200.2 |
naver.com | 210.210.210.1 |
aaa.com | 220.220.220.3 |
* 사용자는 도메인으로 먼저 접근을 하고 DNS서버는 IP를 응답해준다.
: 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 개발됨.
: 네트워크 상에서 컴퓨터들은 IP주소를 이용해 서로를 구별하고 통신함.
: 숫자의 연속적 IP주소를 모두 외울 수 없기 때문에 쉽게 기역할 수 있는 도메인 주소 체계가 만들어짐.
: 1단계 최상위 도메인 : .kr, .jp, .cn
: 2단계 도메인 : .co, .go, .or
: 3단계 도메인 : 이미 등록되어있는 문자열을 제외한 희망문자열
-> 문자열.co.kr
[출처]
강의 링크 :
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
참고 링크 :
IP
https://velog.io/@doondoony/ip101
UCP, UDP
https://mangkyu.tistory.com/15
패킷
http://www.terms.co.kr/packet.htm
포트
도메인
https://xn--3e0bx5euxnjje69i70af08bea817g.xn--3e0b707e/jsp/resources/dns/dnsInfo.jsp
'IT etc' 카테고리의 다른 글
HTTP) HTTP 특징, HTTP 메시지 (0) | 2021.08.12 |
---|---|
URI와 웹 브라우저 요청) URI(URL, URN), 웹 브라우저 (0) | 2021.08.11 |
SOLID) 객체지향 개발 5대 원리 (0) | 2021.08.04 |
IntelliJ) 인텔리제이 단축키 (0) | 2021.07.30 |
네트워크) Note (0) | 2021.07.21 |