마라랑랑 2023. 1. 11. 19:38

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

  • 애플리케이션 계층 - HTTP, FTP
  • 전송 계층 - TCP, UDP
  • 인터넷 계층 - IP
  • 네트워크 인터페이스 계층

애플리케이션

  • SOCKET 라이브러리
  • 웹 브라우저
  • 네트워크 게임
  • 채팅 프로그램

OS (운영체제)

  • TCP
  • UDP
  • IP (Internet Protocol)

네트워크 인터페이스

  • LAN 드라이버
  • LAN 장비

패킷 전달 순서

  1. 프로그램이 Hello, World! 메시지 생성
  2. SOCKET 라이브러리를 통해 전달
  3. TCP 정보 생성, 메시지 데이터 포함
  4. IP 패킷 생성, TCP 데이터 포함

HTTP < TCP < IP < Ethernet frame 순서로 감싸서 전송됨

 

TCP 특징

  • 전송 제어 프로토콜 (Transmission Control Protocol)
  • 연결 지향 - TCP 3 way handshake (가상연결)
  • 데이터 전달 보증 : 클라이언트에서 서버로 데이터 전송완료시, 서버에서 데이터 받음을 클라이언트로 전달
  • 순서 보장 : 패킷1, 패킷2, 패킷3 순서로 전송 -> 패킷1, 패킷3, 패킷2 순서로 도착 -> 패킷2 부터 다시 보내라고 전달

 

  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

TCP 3 way handshake

connect - 연결 과정

  1. 클라이언트 -> 서버 : SYN
  2. 서버 -> 클라이언트 : SYN + ACK
  3. 클라이언트 -> 서버 : ACK (+ 데이터)
  • SYN : 접속 요청
  • ACK : 요청 수락
  • 참고: 3. ACK와 함께 데이터 전송 가능

 

TCP/IP 패킷 정보

IP패킷: 출발지 IP, 목적지 IP, 기타..

TCP 세그먼트: 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보...

전송 데이터 < TCP < IP 패킷 순으로 감싸서 전달

 

 

UDP 특징

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

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하게 빠름

정리

  1. IP와 거의 같다 + PORT + 체크섬 정도만 추가
  2. 애플리케이션에서 추가 작업 필요