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