인터넷 네트워크
IP프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
- 비신뢰성
- 중간에 패킷이 사라질시, 패킷이 순서대로 도착하지 않을 경우
- 프로그램 구분
- 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면 ? >> 구분할 수 없음
TCP vs UDP
IP프로토콜의 한계가 명확하기 때문에 OSI 7계층에서(최근에는 4계층이 시장 점유율이 높다고 한다.)
TCP/IP 모델 기반의 TCP 통신을 하는 경우가 많아졌고 상황에 따라 최적화 or 속도 등의 목적으로 UDP를 사용하기도 한다.
TCP/UDP 모두 4계층 Network Layer 에서 사용되는 프로토콜이다. 각각의 PDU 이 다른데 TCP의 경우 세그먼트, UDP의 경우 데이터 그램으로 표현할 수 있다.
1) TCP(Transmission Control Protocol)
- 연결형 서비스로 가상 회선 방식 제공 (연결지향)
- 패킷의 순서와 데이터 전달을 보장한다.
- 3-way handshaking 과정을 통해서 TCP Socket() 을 맺게 되고 (일반적으로 L7에서 맺곤한다. L4 API를 통해서) 4-way handshaking을 통해서 해제한다.
- 신뢰할 수 있는 프로토콜이다.
- 흐름 제어 및 혼잡 제어를 수행한다.
- 대부분의 통신하는 경우에 있어 TCP를 많이 사용한다.
2) UDP(User Datagram Protocol)
- TCP 이 가지고 있는 특징에 정반대라고 생각하면 된다.
- IP와 거의 같다. +PORT+체크섬 정도
- 비연결형 서비스로 데이터그램 방식을 제공한다.
- 신뢰성이 낮다.
- 최적화할 때 UDP를 많이 쓰곤 한다. 이 부분은 UDP 연결 자체가 없기 때문에 (connect 함수를 사용하지 않음) 서버 소켓과 클라이언트 소켓의 구분이 없기 때문에 가능하다.
PORT
- 엔드 투 엔드 연결을 수행할 때 내 컴퓨터에서 둘 이상의 컴퓨터를 연결해야 할 경우 각 컴퓨터를 어떻게 구분할지에 대한 것을 PORT 기반으로 라우팅하게 된다. 즉, IP만으로는 한계가 존재한다.
- TCP/IP 헤더 패킷에 출발지 PORT 와 목적지 PORT 를 포함한다. 그래서 데이터 통신할때 캡슐화 과정을 거치는 와중에 헤더에 TCP/IP 헤더를 붙이게 된다.
- 같은 IP 내에서 프로세스 구분을 수행한다.
- 0~65535 할당 가능하고
- 여기서 0~1023 은 잘 알려진 포트, 사용하지 않는것이 좋다.
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443 을 사용한다.
DNS
- DNS는 도메인 이름에 대한 IP 정보를 우리가 하나하나 기억하지 못하기 때문에 Local DNS 에서 등록된 Root DNS 부터 차례로 TLD(Top-Level-Domain) / SLD(Second-Level-Domain) 등을 Recursive하게 탐색하여 각 도메인 서버에서 찾고자 하는 도메인 이름 정보를 검색해 IP 를 찾아오는 과정이다.
- IP를 찾아오게 되면 내 컴퓨터 단말에 캐시되어 저장된다.
출처 :
https://livlikwav.github.io/study/tcp-and-udp/
3
'Computer Science > Network' 카테고리의 다른 글
HTTP 기본 (0) | 2021.12.07 |
---|---|
URI와 웹 브라우저 요청 흐름 (1) | 2021.12.07 |
Network08 :: 네임서버 (0) | 2020.09.28 |
Network07 :: OSI 7 계층 (0) | 2020.09.26 |
Network06 :: 서브넷마스크(3) (0) | 2020.09.02 |
댓글
이 글 공유하기
다른 글
-
HTTP 기본
HTTP 기본
2021.12.07 -
URI와 웹 브라우저 요청 흐름
URI와 웹 브라우저 요청 흐름
2021.12.07 -
Network08 :: 네임서버
Network08 :: 네임서버
2020.09.28 -
Network07 :: OSI 7 계층
Network07 :: OSI 7 계층
2020.09.26