5. 그 외 공부/5.3 CS 공부

220803_CS공부_TCP/UDP 정리

마느링 2022. 8. 3. 22:12

예 ) 미국에 있는 친구에게 HELLO WORLD라는 메시지를 전달하고 싶다면?

1. 소캣 라이브러리를 통해서 OS 계층에 DATA(HELLO WORLD) 라는 개체를 넘긴다.

 2. OS 계층에서 1차적으로 데이터에 TCP 정보를 씌운다.

  (TCP 정보 :  출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등의 정보 )

3. TCP 정보를 씌운 2번에 + IP에 연관된 데이터에 대한 정보를 씌운다.

    (IP 정보 : 출발지/목적지 IP에 대한 데이터)

 

TCP 란? 전송 제어 프로토콜 ( 전송을 어떻게 할지 제어하는 프로그램)
TCP 특징

1. 연결지향 : 나와 상대방 사이에 연결이 되었나 안되었나 연결 후 메시지 전송
    - TCP 3 WAY HANDSHAKE 방법


    ① 클라이언트 : TCP/IP 프로토콜로 SYN이라는 메시지를 보냄.
    ② 서버 : SYN+ACK 메시지를 보냄(응답)
    ③ 클라이언트 : ACK 로 서버에 응답
    ④ 연결 : (실제 물리적인 연결은 3에서 바로 연결 하거나 해당 단계에서 연결 실행)
        (SYN : 접속 요청, ACK : 요청 수락)

2. 데이터 전달 보장 : 데이터 전송 과정에서 문제가 발생하면 보낸 발신자가 알 수 있음
3. 순서 보장 

       예)  3가지 패킷을 전송해야하고 1->2->3 순서로 보내야하는데 만일 1->3->2 순서로 도착한다면?
                       1번은 그대로 두고 3번부터 버리고 다시 순서대로 2->3번을 보낼 수 있게 함
                       (OS 계층에서 씌운 TCP 정보에 전송제어 정보, 순서정보, 검증정보가 추가로 들어있기 때문에)

UDP란?  사용자 데이터그램 프로토콜. TCP에서 최적화 하기 위하여 사용
UDP 특징

        1. 기능이 거의 없음.
        2. 순서보장 X
        3. 데이터 전달 보장 X
        4. 단순하고 빠름(TCP의 단점 - 전송할 데이터가 크며 비대한 상태 을 UDP에서 보완. )
        5. TCP 프로토콜이 기능도 많고 비대하여 더 이상 개선이 힘들다. 최적화를 위하여 UDP 프로토콜을 씀