TCP/IP 4 계층

연어먹고싶음ㅁ 2022. 4. 19. 11:25

 

OSI 7 계층 : 전반적인 네트워크 전송 표준의 전반

TCP/IP 4계층 

 - OSI 계층구조 개념을 적용하여 보다 단순화 시킨 모형

 - 해당 프로토콜의 통신과정을 크게 4개 계층 구조로 나눠서 설명한 것

 

제 1계층 : 네트워크 연결 계층 ( Network Access Layer) 

- 물리적인 데이터의 전송을 담당하는 계층

- 인터넷 계층과 달리 같은 네트워크 안에서 데이터가 전송

- 프로토콜 : 이더넷 (Ethernet) 

 -> 이더넷 : 데이터 링크 계층에서는 데이터 전송 과정에서의 오류를 감지하는 역할도 하는데, 이는 이더넷 헤더와 함께 인터넷 계층에서 전달받은 패킷의 반대쪽 끝에 트레일러를 붙임으로써 수행됨.

 -> 이더넷은 LAN과 WAN에서 사용되는 기술규격으로 MAC 패킷과 프로토콜의 형식을 정의

 -> LAN : Local Area Network, 근거리 통신망을 의미, 특정 거점 내의 PC나 서버의 통신을 가능하게 함

 -> WAN : Wide Area Network, 복수의 거점에서 통신을 하기 위해 LAN끼리 연결한 것

 

제 2계층 : 인터넷 계층 (Internet Layer)

- 네트워크 상에서 데이터의 전송(패킷의 이동)을 담당하는 계층 

- 서로 다른 네트워크 간의 통신을 가능하게 함

- 네트워크 상에서의 데이터의 이동 경로를다룸 

- 출발지와 목적지의 표시를 위한 논리적인 주소로 IP주소를 할당하게 됨

 -> IP 주소 : 네트워크 상에서 컴퓨터를 식별하는 번호로 기능, 

- 장비 : 라우터

 -> 라우터 : 네트워크끼리 연결하고 데이터를 전송하는 기기, 내부의 라우팅 테이블을 통해 경로 정보를 등록하여 데이터 전송을 위한 최적의 경로를 찾음 , 출발지와 목적지 간의 데이터 전송 과정을 가리켜 End-to-End 통신이라고 부름

 -> 라우팅 : 라우터에 의한 네트워크 간 전송 

 - 주요 프로토콜 

  • IP (Internet Protocol) : 비신뢰성, 비연결지향 데이터그램 프로토콜
  • ARP(Address Resolution Protocol) : 주소변환 프로토콜, ip 주소를 MAC 주소로 변환하는 프로토콜
  • RARP (Reverse ARP) : 반대로 MAC 주소로 IP 주소를 찾는 프로토콜
  •  ICMP (Internet Control Message Protocol) : 상태 진단 메시지 프로토콜 
  • IGMP*Internet Group Management Protocol) : 멀티캐스트용 프로토콜
  •  OSPF(Open Shortest Path First) : 링크 상대 라우팅 프로토콜 , 인터넷에서 연결된 링크의 최적의 경로를 선택함

제 3계층 : 전송 계층 (Transport Layer)

 - 데이터의 전송 및 흐름에 있어 신뢰성 보장을 담당

 - 데이터를 적절한 어플리케이션에 제대로 전달되도록 배분

 - End-to-End의 신뢰성을 확보

 - 프로토콜 : TCP, UDP

 

TCP 

 - 신뢰성이 보장되는 연결 지향형 프로토콜 

 - 어플리케이션 계층에서 전달받은 데이터를 세그먼트 단위로 전송하게 됨

 - 세그먼트들은 체크섬이라고 불리는 일종의 중복 및 오류 검사의 수행을 거쳐 일정한 순서에 맞춰서 전송 

 - 흐름제어(수신 측 버퍼의 오버플로우를 방지하는 것),

 - 혼잡제어(전송되는 패킷 데이터가 과도하게 많아져 혼잡을 초래하는 상황을 방지하는것을 의미)

 - 세그먼트 : 어플리케이션 계층에서 보내진 데이터에 TCP 헤더가 추가된 것을 말함. 

 -> TCP 헤더 : 출발지, 목적지, 포트번호, 시퀀스 번호, ACK 번호, 체크섬 등의 요소가 존재 

 -> 시퀀스 번호 : 데이터의 전송의 순서 보장을 위한 정보로 데이터가 분할된 경우에는 시퀀스 번호를 통해 어떻게 분할 되었을 지 알 수 있음

  • 시퀀스 번호 : 데이터 전송의 순서 보장을 위한 정보로, 데이터가 분할된 경우에는 시퀀스 번호를 통해 어떻게 분할되었는 지 알 수 있음(전송되는 바이트 수를 기준으로 점점 증가)
    • 앞서 언급한 MSS 기준 세그먼트가 분할되는 것과 대응되는 내용!
  • ACK 번호 : 응답 번호라고도 하며 수신측 프로세스에서 수신한 바이트 수를 제대로 응답하기 위해 사용됨
  • Flags : SYN, ACK 등의 제어 번호가 담긴 제어 비트 영역
  • Window Size : 수신 윈도우의 버퍼 크기를 지정할 때 사용되는데, 사이즈가 0일 경우에는 송신 프로세스가 전송을 중지함
  • 포트 번호 : TCP 프로토콜을 통해 연결되는 송, 수신측(출발지-목적지 양 끝)에 할당되는 포트 번호
  • 체크섬(checksum) : 세그먼트에 포함된 헤더 및 데이터에 대한 오류 검출 용도

UDP 

- TCP와 대비되는 비연결, 비신뢰적 특징을 갖는 전송계층의 프로토콜

- 사전 연결 과정 없이 데이터그램을 전송함

- 빠른 전송

- 신뢰도는 떨어짐

- 최소한의 신뢰서을 위한 오류제어 메커니즘으로 체크섬 기능을 옵션으로 제공

- UDP 헤더는 포트번호, 체크섬 관련 정보 정도가 추가된 정도로 비교적 간단한 구조 

- 데이터그램의 전송순서도 보장되지 않음

- 중간에 데이터그램이 유실되어도 이를 재전송 하지 않음 

- 데이터를 분할하는 과정을 거치지 않음

- 전체 데이터의 경계가 구분될 뿐더러 1:1, 1:N, N:N 통신이 모두 가능 

 

제 4계층 : 어플리케이션 계층 (Application Layer) 

 

- 응용 계층, 사용자와 가장 가까운 계층으로 사용자-소프트웨어 간 소통을 담당하는 계층

- 웹프로그래밍을 하면서 흔히 접하는 여러 서버, 클라이언트 관련 응용 프로그램들이 동작하는 계층

 - 어플리케이션의 기능을 실행하기 위한 데이터의 형식 및 처리절차 등을 결정

 -데이터는 인간이 인식할 수 있는 문자나 이미지와 같은 형식으로 표현 됨 

 - 주요 프로토콜 

  • 파일전송 
    • FTP :파일을 받거나 올릴 때 사용, 데이터 전송 포트 20/ 제어용 21
    • TFTP
  • 원격 로그인
    • Telnet : 원격 터미널을 접속할 때 사용 /포트 23/
  • 전자메일 
    • SMTP : 메일 전송 프로토콜 /TCP 포트 25/
    • POP : 메일 수신용 프로토콜 /TCP 포트 110/
  • 지원 서비스 범주 
    • DNS 
    • SNMP
  • 기타 프로토콜 
    • HTTP : TCP 기반의 프로토콜 /포트 80/
    • SSH : 보안이 약한 텔넷을 보완한 프로토콜/포트 22/

 

데이터 전송 흐름 

캡슐화

- 각 계층별로 헤더를 추가하여 정보를 감싸는것 

- 4계층에서 1계층으로 데이터가 전송되면서 헤더가 추가됨

- 데이터를 역으로 수신할 경우에는 1계층에서 4계층으로 가면서 해당 계층별로 필요한 헤더를 확인 후 헤더를 삭제 함 

- 데이터의 전송 과정에서 1계층에서 4계층까지 순서대로 프레임, 패킷 혹은 데이터그램, 세그먼트 혹은 데이터그램, 메시지로 데이터를 구분해서 표현, 

 - 웹브라우저에서의 통신의 경우, http 메시지 = 데이터+http헤더

 - 세그먼트 = http메시지 TCP헤더(트랜스포트 계층을 거치면서 TCP헤더가 추가됨)

- UDP 프로토콜의 경우에는 데이터를 분할하지 않았기 때문에 세그먼트 대신 데이터그램이 됨

- 패킷 = 세그먼트 + IP헤더(IP주소 정보 포함)

- 프레임 = 패킷+ 이더넷 헤더+ FCS

 

데이터 구분

어플리케이션 계층 http 메시지 = 데이터 + http 헤더
전송 계층 세그먼트 = http 메시지 + TCP 헤더
또는 데이터 그램 = http 메시지 + UDP 헤더
인터넷 계층  패킷 = 세그먼트 +  IP 헤더(IP 주소 정보 포함)
네트워크 연결 계층 프레임 = 패킷 + 이더넷 헤더 + FCS

 

 

참조

https://m.blog.naver.com/soojin_2604/221950485931

https://junu0516.github.io/posts/tcp_ip_4%EA%B3%84%EC%B8%B5/