TCP 란?
TCP란 Transmission Control Protocol의 약자로 전송을 제어하는 규약이라는 뜻 입니다.
Internet 상에서 데이터를 메시지 형태로 보내기 위해 IP와 함께 사용하는 규약
TCP는 패킷을 추적 및 관리하고 IP는 데이터의 배달을 처리합니다.
패킷(Packet) : 인터넷 내에서 데이터 전송을 위한 라우팅을 효율적으로 하기 위해 나눠진 조각
TCP 단점
- 데이터로 보내기 전에 반드시 연결이 돼야 합니다.
- 1 : 1 통신만 가능합니다.
- 고정된 통신 선로가 최단선이 아닐 경우 상대적으로 UDP보다 데이터 전송속도가 느립니다.
TCP 특징
- 연결형(connection-oriented) 서비스로 연결이 성공해야 통신이 가능하다.
- 데이터의 경계를 구분하지 않는다
- 데이터의 전송 순서를 보장한다. 데이터의 순서 유지를 위해 각 바이트마다 번호를 붙인다.
- 신뢰성 있는 데이터를 전송한다. (Sequence Number, Ack Number)
Sequence Number : TCP 세그먼트의 연속된 데이터 번호
ACK Number : 상대방으로부터 받아야하는 다음 TCP 세그먼트 데이터 번호
- 데이터 흐름 제어(수신자 버퍼 오버플로우 방지) 및 혼잡 제어(패킷 수가 과도하게 증가하는 것 방지)
- 연결의 설정(3- way handshaking), 해제(4-way handshaking)
- 전이중 (Full-Duplex), 점대점(Point to Point) 서비스
3 way handshake 방식 (SYN, ACK) : 서로의 통신을 위해 관문(port)를 확인하고 연결하기
위해 3번의 요청(SYN) / 응답(ASK)이 되는 것을 말한다.
이 과정에서 시간이 가장 많이 소요 돼, UDP 방식 보다 속도가 느려지는 원인이 된다.
연결과정
1. Client에서 Server에 연결 요청을 하기 위해 SYN 데이터를 보낸다.
2. Server에서 해당 포트는 Listen 상태에서 SYN 데이터를 받고 SYN_RCV로 상태가 변경된다.
3. 그리고 요청을 정상적으로 받았다는 대답(ACK)와 Client도 포트를 열어달라는 SYN을 같이 보낸다.
4. Client에서 SYN + ACK를 받고 ESTABLISHED로 상태를 변경하고 서버에 ACK를 전송한다.
5. ACK를 받은 서버는 상태가 ESTABLISHED로 변경된다.
UDP란?
UDP(User Datagram Protocol)는 전송계층의 비연결 지향적 프로토콜을 뜻한다.
비연결 지향적이란 데이터를 주고 받을 때 연결 절차를 거치지 않고 발신자가 일반적으로
데이터를 발신하는 방식을 의미한다.
연결 과정이 없기 때문에 TCP 보다 빠르지만, 데이터 유실이 발생할 수 있다.
UDP 단점
- 데이터의 신뢰성이 없다.(유실 위험이 존재한다)
- 의미있는 서버를 구축하기 위해서는 일일이 패킷을 관리해주어야 한다.
UDP 특징
- 비연결형 서비스로 연결 없이 통신이 가능하며 데이터 그램 방식을 제공한다.
- 데이터 경계를 구분한다. (데이터그램 서비스)
- 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.
- 신뢰성 없는 데이터를 전송한다.
- 패킷관리가 필요하다
- 패킷 오버헤드가 적어 네트워크 부하가 감소되는 장점이 있다.
- 상대적으로 TCP보다 전송속도가 빠르다
'Network 강의' 카테고리의 다른 글
네트워크 계층이란? (0) | 2024.09.10 |
---|---|
데이터 링크 계층이란? (0) | 2024.09.01 |
물리 계층이란? (0) | 2024.09.01 |
2024년 8월 29일 강의 (멀티 게임 서버의 종류와 동작 방식) (0) | 2024.09.01 |
2024년 8월 27일 강의 및 추가 학습(게임 서버의 역할, 상호 작용, 하는 일, 자격) (0) | 2024.08.28 |