TCP, UDP

Judo·2021년 1월 28일
0

김영한님의 강의를 통해 배운 내용을 기록
강의 링크

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

  • 애플리케이션 계층 -> HTTP, FTP
  • 전송 계층 -> TCP, UDP => IP위에 TCP를 올려 한계점을 보완해주는 것
  • 인터넷 계층 -> IP
  • 네크워크 인터페이스 계층

프로토콜 계층

  • 채팅을 예로 들어 프로토콜 계층 흐름을 파악해보자
    1. 메시지가 작성되면 socket 라이브러리를 통해 전송 계층으로 넘어간다.
    2. 전송계층에서 TCP 정보가 생성되고 메시지 데이터에 씌워지고 인터넷 계층으로 넘어간다.
    3. 인터넷 계층에선 IP 패킷이 생성되고 메시지 데이터 + TCP 정보에 씌워진 뒤 네트워크 인터페이스로 넘어간다.
    4. 네트워크 인터페이스에선 Ethernet frame이 씌워지고 인터넷을 통해 전달된다.

TCP/IP 패킷 정보

패킷 ? package + bucket 합성어

  • TCP 정보에는 아래와 같이 출발지 port, 목적지 port, 전송제어, 순서!, 검증정보 등이 포함된다.

TCP 특징

전송 제어 프로토콜(Transmission Control Protocol) : 전송을 제어하는 녀석!

  1. 연결 지향 (연결 여부를 확인하고 데이터를 보낸다.): TCP 3 way handshake (가상 연결)
  2. 데이터 전달 보증 (데이터 전달이 누락되면 알 수 있다.)
  3. 순서 보장( 패킷 순서 보장)
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

1. TCP 3 way handshake

  1. 클라이언트가 서버로 SYN(접속요청)을 보낸다.
  2. 서버가 응답할 수 있는 상황이면 클라이언트로 SYN + ACK (접속요청 + 요청수락)을 보낸다.
  3. 서버로부터 응답을 받은 클라이언트는 다시 ACK(접속 요청)을 서버로 보낸다.
  4. 이후 둘 사이에 연결이 확인되면 데이터를 전송한다.

다만, 요즘은 최적화가 잘 되어있어 3.ACK 과정과 4.데이터 전송을 한번에 처리하기도 한다.
또한 위 과정을 통해 연결을 확인하는 과정은 실제로 연결이 되었음을 보장하는 것이 아닌 논리적으로 연결이 되었겠구나 생각하는 것이다. 즉, 가상 연결을 기반으로 한다.

2. 데이터 전달 보증

  • 데이터를 전송했을 경우 응답을 해줌으로써 데이터 전달 여부를 확인할 수 있다.

3. 순서 보장

위와 같은 특징을 가능하게 하는 것은 TCP 정보에 포함되어 있는 전송제어, 순서, 검증정보..등의 역할때문

UDP 특징

사용자 데이터그램 프로토콜(User Datagram Protocol)

  • 하얀 도화지에 비유 (기능이 거의 없음)
  • 연결 지향 -> TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠르다.
  • 정리
    • IP와 거의 같지만 port + 체크섬 기능이 추가
      • 하나의 IP 주소를 사용하는 컴퓨터에서 여러 패킷이 올 경우 어떤 용도의 패킷인지 구분하기 위해 port를 사용
      • 알맞은 데이터가 넘어왔는지 확인하는 체크섬
    • 애플리케이션에서 추가 작업 필요
profile
즐거운 코딩

0개의 댓글