본문 바로가기

OSI 7 계층 / TCP/IP Protocol Suite

1. 네트워크 계층

계층으로 나눈 이유: 통신을 하기 위한 기능들이 복잡하기 때문에 레이어로 나눠서 구분한다. 그래서 통신이 일어나는 과정을 단계별로 파악할 수 있고, 에러 발생 시 발생 위치를 파악하기 용이하다. 각자의 레이어가 하는 일이 있고 레이어들간의 상호작용도 일어난다.

 

OSI7 계층과 TCP/IP 4 계층

OSI7 Model : ISO기관에서 정의한 네트워크 레이어 모델을 의미한다  각 레이어에 대해 어떠한 프로토콜이 들어와도 상관없다. 실질적으로 구현되는 예는 없다. 주로 표준으로 쓰인다. 즉, 개념적인 모델이다.

 

TCP/IP Protocol Suite : 일반적으로 4 계층으로 표현하지만, 5계층으로 표현할 때도 있다. 실질적으로 사용된다.

인터넷에 연결된 모든 기기는 TCP/IP 프로토콜 써야 인터넷 접속이 가능하다.

OSI7 과 달리, 각 레이어에서 사용되야 하는 프로토콜이 정해져 있다.

OSI7 보다 먼저 만들어졌다.

 

* TCP/IP 에서 OS!로 바뀌지 않은 이유

1. 이미 TCP/IP가 자리잡은 상태여서, 바꾸는데 비용 많이 든다.

2. OSI Model의 몇몇 레이어 (Session Layer, Presentaion Layer) 가 완벽하게 정의되지 않았다.

3. 바꿀 만큼의 성능향상이 없다.

 


2. Encapsulation 

 

Encapsulation : 데이터 전송할 때 마다 각각의 레이어에서 헤더를 붙인다. 

각 레이어에서 패킷 이름은 다음과 같다.

  • Application Layer : Message
  • Transport Layer : Segment
  • Network Layer : Packet
  • Data-Link Layer : Frame : Checksum, 송수신 호스트의 주소 등이 헤더에 포함. 동일 네트워크 상의 정보만 가짐
  • Physical Layer : Bits 

하위 레이어로 갈 수록 허용 데이터 사이즈가 작아진다. 즉, Message가 크면 여러개의 Segment로 나뉜다.

이 때, 상위 레이어의 Message + Header는 하위 레이어에서는 하나의 Data 로 취급한다.

 

Decapsulation : 데이터를 수신받은 측에서 헤더를 제거한다.


3. Layers

 

Layer 1 :  물리계층(Physical Layer) 

- 하드웨어로 구현.

- 통신 단위는 비트이다. 

- 1/0 데이터를 아날로그 신호로 바꾸어 전송하고, 아날로그 신호를 다시 비트로 변환한다. 즉. 데이터를 시그널에 담아서 보낸다.

- 어떠한 프로토콜이 사용되어도 상관 없다.

- 물리적으로 연결된 노드 간에 신호를 주고 받는다.

- 주요 장비에는 케이블, 허브. 리피터, 네트워크 가드 등이 있다.

 

Layer 2 :  데이터링크 계층(Data-Link Layer)

- 하드웨어로 구현.

- 2개의 서브레이어 LLC, MAC로 나뉜다.

- 프레임을 만들어서 피지컬레이어에게 전송을 요청한다.

- Mac 주소를 이용해 목적지로 전송한다. ( Mac 주소는 네트워크 레이어에서 알려준다.)

- 인접 노드간의 데이터 전송 제어 ( One-Hop Delivery 를 담당한다)

- 프로토콜에는 이더넷, HDLC, ADDCP, LLC, ALOHA 등이 있다.

- 프레이밍, 오류체크, 순서체크, 흐름제어, 회전제어, Segmentation, Reassembling 등을 한다.

- 주요 장비에는 브릿지, 스위치 등이 있다.

 

Layer 3 :  네트워크 계층(Network Layer)

- 소프트웨어로 구현

- 종단 시스템 사이 경로를 알려준다.

- 데이터를 네트워크를 통해 전달하고, 최적의 경로를 알고리즘을 통해 선택한다. 이 과정을 라우팅이라고 한다.

- 전송 단위는 패킷이다. 

- 모든 호스트, 라우터에 구현되있어야 한다. 라우터는 네트워크 레이어 까지만 처리할 수 있다. 그 아래는 처리 못한다.

- Forwarding : 각 라우터에서 어떤 output port로 내보낼지 결정하는 것 (원하는 경로로 가기 위한 아웃풋 포트)

- Routing : sender에서 receiver까지 어떤 경로 선택할 건지 결정하는 것. 경로를 만드는 것. 

- 반드시 IP 프로토콜만 사용되어야 한다. 즉, 전송을 위한 주소로 IP 주소 (대표적인 Logical Address) 사용한다.

- 주요 장비에는 라우터, L3 스위치가 있다.

 

Layer 4 :  전송 계층(Transport Layer)

- 소프트웨어로 구현

- 종단 간 ( End to End ) 신뢰성 있는 데이터전송을 담당한다. End To End Delivery 담당

- Process To Process Delivery 를 담당한다.  하나의 기기안에서 Process의 연결을 담당한다.

- Process를 특정하기 위해 Port 번호를 사용한다.

- 프로토콜으로는 TCP 혹은 UDP 등이 존재한다.

- 데이터의 신뢰성 위해,  Flow Control. Error Control, Segmentation and Reassembly 등을 수행한다.

- TCP 프로토콜에서는 Connection Control ( 3 - HandShake ) 를 수행한다.

- 주요 장비에는 L4 스위치가 있다.

 

Layer 5 :  세션 계층(Session Layer)

- 종단 간의 응용 프로세스가 통신 관리하기 위한 방법 제공

- 통신 방법에는 Full-Duplex, Half-Duplex 등이 존재한다.

- TCP/IP 세션을 만들고 없애는 책임을 한다.

- 사용자간의 연결을 생성하고, 유지하며 동기화 기능을 제공한다.

- 데이터 단위는 Data혹은 Message 라고 한다.

 

Layer 6 :  표현 계층(Presentation Layer)

- 상위 데이터로부터 받은 데이터를 Session Layer에서 다룰 수 있도록 변환한다. 그 반대 작업도 수행한다.

- 인코딩/디코딩, 암호화/복호화, 압축/해제 등을 수행한다.

- 데이터 단위는 Message 이다.

 

Layer 7 :  응용 계층(Application Layer)

- 운영체제에 의해 관리된다.

- Network Process 수 만큼 Socket과 자료구조가 존재한다. 

- HTTP, FTP, SMTP 등의 프로토콜이 존재한다.

- 응용 프로그램이 프로토콜을 쉽게 사용하도록 만든다.

- 사용자 인터페이스 제공해준다.

 


4. TCP 와 UDP

TCP : 인터넷에서 데이터를 보내기 위한 프로토콜. 

- 연결형 서비스이다. 

- 데이터의 전송 순서를 보장한다.

- 데이터의 경계를 구분하지 않음

- 패킷을 추적 및 관리한다.

- 높은 신뢰성 보장 ( 수신 여부 확인 가능 )

- Flow Control ( 수신 속도를 송신 속도에 맞춘다 )

- Congestion Control ( 네트워크에 맞춰 전송속도 조절 ) 

- 안정적이라 웹 브라우저에 사용된다.

- UDP 보다 속도가 느리다.

 

UDP : 데이터를 데이터그램 단위로 처리하는 프로토콜

- TCP와 다르게 비연결형이다. 각각의 패킷은 독립적이고 다른 경로로 전송된다. ( 할당된 논리적 경로 없다 )

- Checksum 을 통해 최소한의 오류만 체크.  그래서 데이터 누락 가능

- 데이터의 경계 구분

- 신뢰성 보장하지 않는다.

- 속도가 빠르다. 

 

 


5. 용어 설명

Mac 주소 : 컴퓨터의 물리적인 주소. 결코 변하지 않는네트워크 카드의 고유한 주소. 데이터 링크 레이어에서 사용

IP 주소 : 네트워크 상 통신을 위한 주소. 네트워크레이어에서 사용.

L3 스위치 : L2스위치 장비 + 라우팅 기능

 

참고

https://www.geeksforgeeks.org/layers-of-osi-model/
https://velog.io/@flasharrow/OSI-7%EA%B3%84%EC%B8%B5
https://goitgo.tistory.com/25
https://ko.wikipedia.org/wiki/%EC%9D%B8%ED%84%B0%EB%84%B7_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C_%EC%8A%A4%EC%9C%84%ED%8A%B8
https://adriansblog.tistory.com/43

'Computer Network' 카테고리의 다른 글

TCP Handshakes  (0) 2022.06.22