카테고리 없음

TCP와 UDP

서머스 2022. 10. 8. 19:51

TCP(Transmission Control Protocol)

  • 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함꼐 사용하는 프로토콜
  • 연결형 서비스, 가상회선 방식을 제공한다.
  • 3 way handshaking 과정을 통해 연결을 설정한다.
  • 신뢰성이 높지만 속도가 느리다

TCP 프로토콜의 구조

- 출발지 포트
- 목적지 포트
- Seq 번호 : TCP 패킷의 순서 번호
- Ack 번호 : Seq 번호에 대한 응답 번호
- 오프셋 : 헤더의 길이, IP 헤더의 길이와 성격이 비슷, 최대 15, Offset * 4 = 실제 헤더의 크기

- Reserved : 예약된 필드로써 사용하지 않는 곳
-  TCP Flags : 현재 패킷의 종류를 표시
- URG : 긴급 bit, 우선순위가 높은 데이터를 포함한 패킷
- ACK : 승인 bit, 승인의 뜻을 포함한 패킷
- PSH : 밀어넣기 bit, TCP Buffer가 일정한 크기만큼 쌓여야 패킷을 추가 전송하는데 이를 생략하고 계속 데이터를 전송하게 함
- RST : 초기화 bit, 데이터를 주고받는 거에 문제가 발생했으니 서로의 연결을 초기화하겠다는 패킷
- SYN : 동기화 bit, Seq 번호를 동기화하고 연결 수립을 요청한다는 패킷
- FIN : 종료 bit, 서버와 클라이언트가 연결을 종료하겠다는 패킷
- Window : 남은 버퍼의 크기를 상대방에게 미리 알려주는 기능
- 체크썸 : 헤더의 오류를 확인하기 위한 값

- Urgent Pointer: 어디가 긴급 데이터인지를 가리키는 곳

 

UDP(User Datagram Protocol)

  • 데이터를 데이터그램 단위로 처리하는 프로토콜
  • 비연결형 서비스
  • 신뢰성이 낮지만 속도가 빠르다

 

UDP 프로토콜의 구조

- 출발지 포트 : UDP 프로토콜을 만드는 송신자의 포트번호
- 목적지 포트 : UDP 프로토콜을 받는 수신자의 포트번호
- 길이 : UDP 헤더와 데이터를 포함한 전체 길이를 바이트 단위로 표시
- 체크썸 : 데이터가 전송 중에 손상되지 않았는지 확인할 수 있는 값

 

 

TCP 3-way handshaking

 

1.  SYN : 클라이언트가 서버와 연결되길 원해서 SYN(Synchronize Sequence Number)을 포함한 세그먼트를 보낸다. 이는 서버에게 클라이언트가 커뮤니케이션을 시작하려 하고 시퀀스 넘버가 무엇인지를 알려준다.

2. SYN+ACK : 서버가 클라이언트에 SYN-ACK 시그널을 보낸다. ACK(Acknowledgement)는 받은 새그먼트에 대한 응답을 의미하며 SYN은 새그먼트가 어떤 시퀀스 넘버로 시작하려 하는지를 의미한다.

3. ACK : 클라이언트가 서버의 응답에 대해 확인 응답을 보내고, 신뢰가능한 커넥션이 생긴다. 이를 통해 데이터를 주고 받을 수 있다.

 

 

 

 

 

-참고-

http://www.ddarahakit.kro.kr/lecture/network_basic/08

 

따라하면서 배우는 IT

0 Comments

www.ddarahakit.kro.kr

https://www.geeksforgeeks.org/tcp-3-way-handshake-process/

 

TCP 3-Way Handshake Process - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org