이번 글에서는 인터넷 프로토콜중 가장 많이 사용되는 TCP와 UDP에 대해서 살펴 보겠습니다.
TCP는 데이터의 흐름 관리, 데이터의 정확성 확인 패킷을 목적지까지 전송하는 역할을 담당하는 인터넷 프로토콜 입니다.
TCP는 개방형 프로토콜의 표준으로 특정 하드웨어나 OS에 독립적으로 사용하는 것이 가능합니다. 또 인터넷에서 서로 다른 시스템을 가진 컴퓨터들을 서로 연결하고, 데이터를 전송하는데 사용하는 통신 프로토콜로 근거리 및 원거리 모두에 사용할 수 있습니다.
TCP는 애플리케이션 계층, 트랜스포트(전송) 계층, 인터넷 계층, 네트워크 인터페이스 계층의 4개의 계층으로 구성되어 있습니다.
위 다이어그램은 TCP를 통해 데이터가 어떻게 전송되는 지를 나타냅니다.
IP 패킷은 크게 헤더필드와 데이터필드로 나누어집니다.
TCP 특징들은 아래와 같습니다.
TCP에서는 통신하기 전에 3가지 단계를 거쳐 통신 연결을 합니다.
위 3가지 단계를 거쳐 정상적인 통신이 이루어지게 됩니다. 이렇게 연결된 상태를 "세션"이라고 부릅니다.
TCP의 경우 클라이언트에서 서버로 데이터 전송 후 서버에서 데이터를 잘 받았다는 신호를 클라이언트 전송합니다.
이런 방식을 통해 데이터 전송이 잘 이루어졌는지를 보증합니다.
TCP의 경우 클라이언트에서 패킷1,2,3의 순서로 전송 후 서버에서 패킷1,3,2의 순서로 도착하는 케이스에 대해 클라이언트로 패킷2부터 다시 보내라는 메시지를 보냄으로써 데이터의 순서를 보장해 줍니다.
UDP(User Dtagram Protocol) : Host-Host, Process-Process 통신을 제공하는 것 이외에는 IP 서비스에 추가하는 것인 아무 것도 없다. 단지 수신된 패킷에서 오류를 탐지하면 이를 폐기하는 정도의 오류 제어 기능만 제공된다.
Host-Host 통신 : IP는 목적지 Host에게만 메시지를 전달할 수 있다.
Process-Process 통신 : TCP, UDP는 메시지를 정확한 프로세스에게 전달시킬 수 있으면 Port번호가 필요하다.
UDP는 데이터 전송 및 순서가 보장되지는 않지만, 처리속도와 데이터 전송률이 빠르다는 장점을 가지고 있습니다.
1000개의 패킷을 전송할 경우 10개의 패킷이 손상이 되거나 분실되었다고 가정해보자. TCP는 10개의 패킷을 재전송하기 위해 시간이 더 걸릴 것이다. 하지만 UDP의 경우 10개의 패킷을 무시하고 전송하기 때문에 TCP보다 전송률이 더 좋을 것이다.
그렇기 때문에 소수 패킷들의 손실은 크게 영향을 미치지 않는 온라인 게임이나, 실시간 방송, 스트리밍 서비스 등에 줄 ㅗ이용된다.
URI(Uniform Resource Identifier) (0) | 2022.07.10 |
---|---|
DNS(Domain Name System) (0) | 2022.07.08 |
Port (0) | 2022.07.08 |
IP(Internet Protocol) (0) | 2022.06.26 |
웹의 동작 방식 (0) | 2022.06.26 |
댓글 영역