상세 컨텐츠

본문 제목

TCP/IP 4 Layer

네트워크(Network)

by 주스로그 2024. 2. 20. 16:12

본문

728x90
반응형

 

네트워크는 장비를 특정 매체를 통해 연결하여
쉽고 간편하게 정보를 공유할 수 있는 환경을 말한다.

 

네트워크는 보다 안정적인 통신과 네트워크 간의 호환을 위해 국제 표준으로 계층적인 모델을 구축했다.


 

국제 표준 계층 모델은 두 가지로 나뉘는데

  • OSI 7 Layer : 보통 장비를 보고 지칭할 때 사용하는 계층
  • TCP/IP 4 Layer : 실제 통신을 할 때 사용하는 계층

이번에는 TCP/IP 4 Layer 계층 구조와 그 역할을 정리하려 한다.

 

Layer number TCP/IP 4 Layer PDU Protocol
4 application message  
3 transport segement TCP/UDP
2 internet packet IP
1 network interface frame ethernet

기본적인 틀은 위와 같이 총 4개의 계층으로 나뉜다.

※ OSI 7 Layer의 Pysical 계층을 4 layer에서 가장 하단 hardware라고 이야기하기도  한다(포함X)

PDU란 Procotol Data Unit으로 header + playload(SDU) + footer(L2) 구조를 가지고 있다.

 

계층 별 구조 및 역할

계층별 구체적 역할은 OSI 7Layer에서 설명한다

2024.02.16 - [네트워크(Network)] - OSI 7-Layer


1) L1 : network interface(=network access)

네트워크 계층은 frame 구조로 통신한다. 

frame은 대표적으로 Ethernet 프로토콜을 사용한다.(다른 프로토콜의 사용은 비교적 적다)

preamble DA SA type payload FCS(CRC)
  header   footer
  frame

Ethernet은 위와 같은 형태로 이루어져있다.

preamble은 헤더는 아니지만, 헤더 앞에 붙어 그 시작을 알리는 기능을 한다.

DA(Dst MAC Address)는 목적지 주소(destination), SA(Src MAC Address)는 출발지 주소(source)를 뜻한다.

네트워크는 순차적으로 비트처리를 하기 때문에 목적지가 먼저 나오면 효율적으로 빠른처리가 가능하기 때문에

다른 계층과는 달리 network interface 계층에서는 목적지 주소가 출발지보다 먼저 나온다.

목적지 주소가 자신의 MAC 주소가 아닐 경우 frame을 받지 않음
※ 예외적으로 broadcast, multicast는 목적지가 아니더라도 버리지 않고 처리한다.

 

type은 상위 계층의 프로토콜을 알려주는 역할이다. 2bytes로 코드 값이 0x0800이면 IP, 0x0806이면 ARP이다.

FCS(frame check sequence)는 Footer로, 2계층에만 있는 구조이다. 무결성과 데이터 손실을 막기위해 검증하는 기능이다.

에러를 탐지하는 역할이지만 에러 검출만을 목적으로 하고 해당 데이터를 고치지는 않고 값을 버린다.

 


2) L2 : Internet

인터넷 계층은 packet을 통해 통신한다. 해당 계층에서는 IP를 이용하는데, IP주소와는 다른 Internet Procotol의 약자이다.

IP 헤더는

version header length type of service total length
identification flag fragment offset
TTL(time to live) protocol header checksum
SA(source ip address)
DA(destination ip address)
option
data

위와 같이 구성되어있다. IP헤더의 구간 별로 field라고 부르기도 한다.

 

version은 항상 4(0100)으로 고정하고, 해당 IP 헤더의 길이를 header length에 적는다.

type of service에 IP인지 ARP인지 적어두고 total length에는 payload를 더한 값을 적는다.

identification은 패킷의 고유번호를 적어 다른 정보와 연결된 정보인지, 연관 정보가 있는지 알수있게한다.

flag와 flagment offset은 나뉜 다른 정보와 위치를 맞추기 위해 순서를 지정해두는 정보가 있다.(0XX)

TTL은 상대방에서 경유한 라우터를 제외하고 남은 횟수이다. TTL이 0이 되면 목적지를 찾지 못하고 돌아다니는 packet의 루핑을 방지하기 위해 폐기한다.

Protocol은 network interface계층의 type과 동일하게  상위 계층의 프로토콜을 알려주는 역할이다. 8bytes로 icmp 0x01 : 00000001, tcp 0x06 : 00000110, udp 0x11(17) : 00011111이다.

header checksum은 header 의 오류나 변조 여부 확인한다. L3는 헤더에 포함된 src, dst가 제일 중요하기 때문이다.

이후에 SA와 DA, option과 data로 구성되어있다.

 


3) L3 : Transport

transport계층의 PDU는 Segment로, TCP와 UDP 두 가지의 프로토콜로 통신한다.

  • TCP

tcp의 특징은 총 세 가지로 connection-oriented, favor-reliability, flow control이다.

connection-oriented(연결지향성) : 손실없는 통신 연결을 목적으로 한다
favor-reliability(신뢰성) : 손실없는 통신으로 신뢰할 수 있는 통신이 가능하다
flow control(흐름 제어) : 수신자가 받는 데이터의 양을 조절해 통신 상태를 제어한다

TCP는 순서화된 일련번호를 통해 순차적으로 데이터를 전송한다. 초기 순서번호는 랜덤으로 설정되고, 설정 값부터 1씩 누적시키며 순서를 알려준다.
또한 통신 받은 데이터가 있는 경우 확인 응답번호(Acknowledgment Number)를 보낸다.
ex)첫 일련번호(0001)+데이터(1000)->ACK(1002)

TCP 확인 응답 종류
1) 일반 확인 응답 : 반드시 목적지에 전달받았음을 계속 확인
2) 누적 확인 응답 : 지정된 양을 받은 후에 전달받음을 확인
                 문제점 : 손실 segement 발생 시 정상정보/손실정보 위치 확인 불가능(구분 어려움)
3) 선택적 확인 응답 : 누적 확인응답의 문제점 해결
                                  손실 segement 발생한 경우 정상 segement 정보를 알려 불필요한 재전송을 방지

 

3way handshake
SYN(시작)
C -> S
ACK/SYN(응답 후 시작)
S -> C
ACK(시작)
C -> S
실제로 통신하기 전, 통신 연결이 잘 되는지 확인하는 절차(연결지향성)로,
클라이언트에서 syn을 보내면 서버에서 그에대한 응답(ack)과 새로운 요청(syn)을 보낸다.
서버의 요청에 대한 클라이언트의 응답을 마지막으로 통신 준비가 완료된다.
  • UDP

udp의 특징 또한 총 세 가지로 connectionless, favor-efficiency, congestion control이다.

connectionless(비연결성) : 연결성보다 효율성에 목적을 둔다
favor-efficiency(효율성) : 빠른 시간 안에 통신이 가능하다(데이터의 손실과 무관)
congestion control(혼잡 제어) : 송신자가 보내는 데이터 양을 조절해 통신 상태를 제어한다

UDP는 빠른 전달을 보장하기 때문에 헤더를 최소화한다.

때문에 가상헤더(Pseudo header)를 구성하여 데이터를 보내기 전 오류 검출을 수행한다.

 


 

4) L4 : Application

마지막으로 application계층은 message(data라고도 한다)를 사용하며, 다양한 프로토콜, 어플리케이션을 이용한다.

 


위와 같이 간단하게 TCP/IP 4 Layer에 대해 알아보았다. 기본적인 개념과 단어를 따로 설명하지 않아 처음 접하기엔 어려워보이는 단어도 많지만 기본 개념과 각 계층의 구조를 먼저 공부 한 후 해당 포스팅으로 특징을 함께 이해하면 더욱 잘 이해할 수 있을 것이다!

728x90
반응형

'네트워크(Network)' 카테고리의 다른 글

Protocol : ARP  (0) 2024.09.27
Protocol : IP  (2) 2024.09.26
Protocol : Ethernet  (0) 2024.09.26
subnet mask/wild mask 구분하기  (0) 2024.09.24
OSI 7-Layer  (0) 2024.02.16

관련글 더보기