TCP/IP

Mar 14, 2019


1. TCP/IP

  • Protocol : 서로 다른 하드웨어와 운영체제 등 상이한 환경끼리 서로 통신을 하기 위해서 필요한 규칙
  • TCP/IP : IP 프로토콜을 사용한 통신에서 사용되고 있는 프로토콜의 집합
    • Application, Transport, Network, Link 총 4가지의 Layer로 나뉘어져 있다.
    • 계층화?
      • 계층화를 통해 사양이 변경된 해당 계층만 변경하면 되기 때문에 변화 대응에 용이하다.
      • 계층끼리의 연결부만 결정되어 있기 때문에 각 계층의 내부를 자유롭게 설계할 수 있다.

2. TCP/IP 4 Layer

(1) Application Layer

사용자에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정

  • FTP, DNS, HTTP, etc…

(2) Transport Layer

Application Layer에 네트워크로 접속되어 있는 컴퓨터 사이의 데이터 흐름을 제공 (여러 컴퓨터로부터 데이터를 받고 포트 번호를 기준으로 분류하여 애플리케이션 계층의 프로그램에 전달한다.)

  • TCP (Transmission Control Protocol), UDP (User Data Protocol)

(3) Network Layer (Internet Layer)

네트워크 상에서 패킷의 이동 - 어떠한 경로(절차)를 거쳐 상대의 컴퓨터까지 패킷을 보낼지 결정

  • Packet : 전송할 데이터의 최소 단위

네트워크에 접속하는 디바이스 드라이버, 네트워크 인터페이스 카드(NIC), 케이블(커넥트 등을 포함한 여러 가지 전송 매체) 등 물리적인 하드웨어 부분을 다룸

3. Flow of TCP/IP Communication

Flow of TCP/IP Communication TCP/IP로 통신을 할 떄 위의 그림과 같이 계층을 순서대로 거쳐 통신을 한다.

  • ex) http://www.naver.com 도메인에 요청을 보낸다면?
    • Client (송신)
      • Application Layer : 브라우저에 입력한 도메인과 매칭되는 IP 주소로 해당 웹 페이지에 대한 HTTP Request 전송
      • Transport Layer (TCP) : Application Layer에서 받은 데이터(HTTP Message)를 통신하기 쉽게 분할하여 안내 번호와 포트 번호를 붙여 Network Layer에 전달
      • Network Layer (IP) : 수신지 MAC 주소를 추가해서 Link Layer에 전달
      • 네트워크를 통한 송신 준비 완료
    • Server (수신) : 수신 측의 서버는 역순으로 Link Layer에서 데이터를 받아들여 Application Layer까지 전달하여 HTTP Request 수신
  • 송신 과정 중 각 계층을 거칠 때는 반드시 Header로 불려지는 각 계층에 필요한 정보를 추가
    • The flow of information down the TCP/IP protocol layers from the Sender to the Host
  • 수신 과정 중에는 반대로 각 계층을 거칠 때, 각 계층마다 사용한 Header를 삭제
    • The flow of information up the TCP/IP protocol layers from the Host to the Sender