AtraFelis's Develop Diary

[컴퓨터 네트워크] TCP/IP 5계층 본문

Computer Science : CS/컴퓨터 네트워크

[컴퓨터 네트워크] TCP/IP 5계층

AtraFelis 2024. 7. 3. 02:43

TCP/IP 프로토콜은 기존에는 OSI 7계층으로 사용하였으나, 인터넷의 발달과 여러가지 이유로 5계층을 주로 사용한다. 최근에는 물리계층과 데이터링크 계층을 한 번 더 묶어 4계층으로 사용하는 듯하지만, 이 글에서는 TCP/IP 5계층에 대해 정리하고자 한다.

  1. Physical Layer(물리 계층) : bits
  2. Datalink Layer(데이터 링크 계층) : frames
  3. Network Layer(네트워크 계층) : datagrams
  4. Transport Layer(전송 계층) : segments or user datagrams
  5. Application Layer(응용 계층) : messages

TCP/IP 5계층은 이렇게 구성되어 있으며, 각 계층마다 다루는 데이터를 부르는 호칭이 다르다. 깊게 따질 것 없이, 이 계층에서는 이런 용어로 데이터를 부르는구나, 정도만 알고 넘어가면 나중에 편할 것이라고 생각한다. 어떤 때는 데이터그램이라 부르다가, 세그먼트라 부르다가... 처음 공부할 때 좀 어지럽다.

 

물리 계층 Physical Layer

  • TCP, IP Protocol Suite (프로토콜 그룹)에서 가장 낮은 계층 으로 전송 매체와 실제로 상호작용 한다.
  • 전자기 신호의 형태로 데이터(프레임의 각 비트)들을 링크를 따라 전달한다.
  • 물리 계층 아래에 숨겨진 계층인 전송 매체가 있기 때문에 두 장치 사이의 통신은 여전히 논리적 통신이다

 

데이터 링크 계층 Datalink Layer

  • 프레이밍(Framing): 물리 계층에서 전달받은 비트열을 프레임 단위로 나누고, 시작과 끝을 구분하는 특수 문자(Flag)를 추가한다.
  • 물리 주소 지정(Physical Addressing): 프레임 헤더에 송신자와 수신자의 MAC 주소를 지정한다.
  • 오류 검출 및 정정(Error Detection and Correction): 프레임에 오류 검출 코드(CRC, Checksum 등)를 추가하여 전송 중 발생하는 오류를 감지하며, 오류가 감지되면 재전송을 요청하거나 오류를 수정한다.
  • 흐름 제어(Flow Control): 송신자와 수신자 간의 데이터 처리 속도 차이를 조절해 수신 측의 버퍼 오버플로우를 방지한다.
  • 매체 접근 제어(Media Access Control, MAC) : 여러 장치가 공유하는 통신 매체(예: 이더넷)에 대한 접근을 제어한다. 임의 접근 프로토콜, 제어 접근 프로토콜, 채널화 등의 방법이 존재한다.

 

네트워크 계층 Network Layer

https://atrafelis.tistory.com/5

  • 논리 주소 지정(Logical Addressing): 데이터를 전송할 때 출발지와 목적지 시스템을 식별하기 위한 논리적인 주소인 IP 주소를 할당한다.
  • 라우팅(Routing): 데이터 패킷이 최종 목적지까지 도달하기 위한 최적의 경로를 결정한다.
  • 단편화 및 재조립(Fragmentation and Reassembly): 전송 가능한 최대 크기(MTU, Maximum Transmission Unit)보다 큰 패킷을 작은 단편으로 나누어 전송하고, 목적지에서 다시 원래의 패킷으로 재조립한다.
  • 오류 검사 : 중요한 오류는 데이터 링크 계층에서 검사하기 때문에, 이곳에서의 오류 검사는 체크섬을 이용하여 오류가 발생했는지만 확인한다.
  • 흐름제어(Flow control)와 혼잡제어(Congestion control) : 전송 계층의 흐름제어와 혼잡제어와 비슷하나, 제어의 대상이 라우터와 라우터로 다르다.

 

전송 계층 Transport Layer

  • 데이터 전송: TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)와 같은 데이터 전송 프로토콜을 사용해 데이터를 전송한다.
  • 흐름 제어(Flow Control): 송신자와 수신자의 데이터 처리 속도 차이를 조절하여 수신자의 버퍼 오버플로우를 방지한다. 네트워크 계층과는 달리 송신자와 수신자 간의 네트워크 혼잡을 방지하기 위해 사용한다.
  • 혼잡 제어(Congestion Control): 데이터 전송 속도가 네트워크의 데이터 처리 속도를 초과할 때 발생하는 혼잡을 관리하고 제어하기 위해 사용한다.
  • 다중화 및 역다중화(Multiplexing and Demultiplexing): 하나의 호스트에서 동시에 여러 응용 프로그램이 통신할 수 있도록 지원한다.

 

응용 계층 Application Layer

사용자가 네트워크에 접근하고 다양한 서비스를 이용할 수 있도록 지원한다.