TCP, UDP

현시기얌·2022년 3월 7일
0

HTTP 웹 기본 지식

목록 보기
2/26

인터넷 프로토콜 스택의 4계층

프로토콜 계층

  1. 프로그램이 메시지(Hello)를 생성한다.
  2. Socket 라이브러리를 통해 OS 계층으로 메시지가 전달이 된다.
  3. OS 계층의 TCP에서 메시지에 TCP 정보를 생성한다.
  4. IP에서 TCP정보가 포함된 메시지에 IP 패킷을 생성한다.
  5. 네트워크의 LAN 카드에서 이더넷 프레임이 포함되어서 패킷이 전송된다.

TCP/IP 패킷 정보

  • IP 패킷에 출발지 IP, 목적지 IP가 들어간다.
  • TCP 세그먼트에는 출발지 IP의 PORT, 목적지 IP의 PORT, 전송 제어와 관련된 정보, 순서, 검증과 관련된 정보가 들어간다.

TCP (Transmission Control Protocol)

전송 제어 프로토콜

  • 연결지향 - TCP 3 way handshake (가상 연결) : 클라이언트와 서버가 연결을 한 다음에 메시지를 보낸다.
  • 데이터 전달 보증 : 데이터가 중간에 소실되면 그 사실을 알 수 있다.
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP를 사용한다.

TCP 3way handshake

  1. 클라이언트에서 서버로 SYN을 보낸다.
  2. 서버에서 응답에 성공하면 SYN + ACK를 클라이언트에 보낸다.
  3. 클라이언트에서도 알겠다는 의미로 ACK를 보낸다.
  4. 위의 과정을 통해 서버와 클라이언트가 연결이 되면 그때서야 데이터를 전송한다.
  • 만약 클라이언트와 서버가 연결이 되어있지 않다면 (3way handshake 실패) 데이터를 전송하지 않는다.

데이터 전달 보증

  • TCP가 있으면 클라이언트에서 서버에 데이터 전송을 성공했을 경우
  • 성공했다는 응답 메시지를 받게 된다.
  • 실패 시 응답 메시지를 받지 않기 때문에 전송에 실패했다는 사실을 알 수 있다.

순서 보장

  • TCP에 전송제어 정보, 순서 정보, 검증 정보가 포함되어 있기 때문에 가능한 일이다.

  1. 클라이언트에서 패킷을 1,2,3 순서로 전송한다.
  2. 서버에서 패킷을 받았는데 1,3,2 순서로 도착했다면?
  3. 서버에서 클라이언트에게 2번부터 다시 보내라는 메시지를 보낸다.
  4. 클라이언트에서 서버로 패킷2번부터 다시 보낸다.

UDP (User Datagram Protocol)

사용자 데이터그램 프로토콜

  • 하얀 도화지에 비유 (기능이 거의 없다)
  • 연결지향 - TCP 3way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만 단순하고 빠르다.
  • 정리
    • IP와 거의 같다. + PORT, + Checksum 정도만 추가되었다.
    • 애플리케이션에서 추가로 작업이 필요하다.
profile
현시깁니다

0개의 댓글