오 이것도 엄청 오랜만에 보는 이름이다. 언제적에 봤는지 기억도 안나는 까마득한 기억.
OSI 7계층의 경우 상세하게 알려고 하면 너무 복잡하다.
검색해보면 각 계층별로 글이 한 바닥씩 나온다 ^_ㅠ
이 포스팅에서는 각 계층이 하는 역할에 대해서만 간단히 알고 넘어가도록 하자.
OSI 7 참조 모델
ISO에서 서로 다른 시스템 간의 통신을 허용하기 위해 OSI (Open System Interconnection) 모델 구성
랜카드, 랜케이블, 통신 프로그램이 설치되어 있는 각각의 개방형 시스템 (Open System)간의 상호연결 (Interconnection)하기 위해 필요한 통신 기능을 7계층으로 나눠 각 계층의 기능과 통신 규칙을 제정한 것이 OSI 7계층 참조 모델이다.
OSI 참조모델은 Network가 제공하는 여러가지의 기능을 7개의 계층으로 나누어 식별할 수 있다.
계층 | OSI 7 참조 모델 | |
7 | Application | 상위 3계층 (통신에 필요한 소프트웨어 기능) |
6 | Presentation | |
5 | Session | |
4 | Transport | 미들웨어 기능 (통신에 필요한 시스템 소프트웨어 정의) |
3 | Network | 하위 3계층 (통신에 필요한 하드웨어 기능) |
2 | Data Link | |
1 | Physical |
7계층 - Application
사용자에게 다양한 UI를 제공함. 이를 통해 데이터 생성.
ex) HTTP, FTP, telnet, SMTP 등 (아웃룩, 크롬, Edge 브라우저 등 실제 End User가 사용하는 프로그램)
6계층 - Presentation
Application 계층에서 생성된 데이터를 어떤 방식으로 전송할지 구문 협의
Data Format에 대해 결정하는 구간
- 코드 변환 (Encoding) (BCD, ASCII, Unicode 등으로의 변환)
- 압축 (Compression)
- 암호화 (Encryption)
5계층 - Session
두 호스트 간의 커뮤니케이션에 대해 관리하는 영역 (Interhost Communition)
또는 Application 간의 연결에 대한 영역 (세션을 맺고 유지하고 끊는 과정)
4계층 - Transport
End to End Connection
각각의 호스트에서 실행되는 Application 사이에 연결을 위한 논리적인 통로 제공 (Virtual Circuit)
전송과 관련한 문제를 관리하며, 신뢰성 있는 전송을 보장한다.
ex) TCP, UDP
3계층 - Network
IP와 같은 논리적인 주소를 사용한다.
경로관리와 최적 경로 결정(Routing)을 관할함.
2계층 - Data Link
End to End 연결의 신뢰성 있는 전송을 보장하기 위한 계층
- LLC (Logical Link Control)
: 상위 계층과 연결, 논리적 통로
: 송신되는 데이터에 대한 무결성 검증 기능 (오류 제어, Error Detection) - MAC (Media Access Control)
: 데이터 충돌 방지, 데이터 전송을 위해 미디어에 접근하는 방법 제공
: 우리가 잘 알고 있는 물리적 주소인 MAC 주소를 제공하여 데이터 전송 방법 제공
1계층 Physical
실제 장비와 장비 사이의 실제적인 데이터 전송을 위한 물리적인 연결을 의미한다.
전기적, 기계적, 기능적, 절차적인 수단을 제공하여 진행
캡슐화 (Encapsulation)
송신자측에서 데이터 전송 시 수행하는 것으로, 계층마다 사용자 데이터를 어떻게 처리할 지에 대한 정보를 구성하는 과정이다.
상위계층(숫자가 높을 수록 상위계층)에서 하위 계층(숫자가 낮은 계층)으로 갈 때 마다 전송하고자 하는 데이터와 이를 처리할 정보를 Header에 넣어서 보내게 되며 캡슐화는 각 계층간에 이동할 때마다 수행하게 된다.
역캡슐화 (De-encapsulation)
수신자 측에서 하위에서 상위 계층으로 갈 때마다 수행하는 것으로, 계층마다 추가된 Header를 분석 및 분리하여 최종적으로 데이터를 수신하는 과정을 말한다.
PDU (Protocol Data Unit)
각 계층별 사용하는 프로토콜에 따라 사용자에게 전송하는 단위가 달라진다.
이 단위를 부르는 명칭을 PDU (Protocol Data Unit) 라고 한다.
1계층인 Physical 계층에서는 Bits, 2계층인 Data Link 계층에서는 Frame, 3계층인 Network 계층에서는 많이 들어본 패킷 (Packet), 4계층인 Transport 계층에서는 Segment, Session(5) / Presentation(6) / Application(7) 계층에서는 원본 데이터인 Message 단위로 송수신하게 된다.
상위계층에서 하위계층으로 데이터를 적재하는 것을 Payload라고 하는데, Payload 과정에서 데이터 앞에 붙는 정보를 Header라고 하고 뒤에 붙는 정보를 Trailer라고 한다.
상위 계층에서 Payload 된 정보에 대한 PDU와 부가 정보에 대한 내역이다.
예를 들어 3계층 부분은 4계층에서 Payload된 정보의 PDU, Header, Trailer 구성이다.
계층 | PDU | Header | Trailer |
7 (Application) | Data | 원본 데이터 (Message) 단위로 송수신 | |
6 (Presentation) | |||
5 (Session) | |||
4 (Transport) | Segment | TCP 헤더 (송신지 Port, 수신지 Port) |
|
3 (Network) | Packet | IP 헤더 (송신지 IP 주소, 수신지 IP 주소) |
|
2 (Data Link) | Frame | Ehternet 헤더 (송신지 MAC 주소, 수신지 MAC 주소) |
CRC |
1 (Physical) | Bits |
앞에서 IP 주소 체계에 대해서 정리할 때, MAC 주소는 2계층 주소, IP 주소는 3계층 주소, Port 번호는 4계층 주소라고 언급한 적이 있는데 그 때는 강의자료에 있는 내용이 뭔 말인지도 모르고 썼는데 OSI 7계층 모델에서 나오는 개념이었다.
각 계층별로 데이터 송수신 과정에서 전송하는 데이터 단위는 PDU가 되고 캡슐화/역캡슐화 과정을 거치면서 Header에 계층별 처리 정보를 부착하거나 제거하는 과정을 진행하게 된다.
Duplex 모드
송신로, 수신로를 기준으로 두 가지 모드로 구분할 수 있다.
- Half Duplex (반 이중 모드)
: 송신로와 수신로가 동일한 구간을 사용하는 것
: 데이터 전송이 양방향으로 동시에 전송 시, 같은 구간을 사용하므로 데이터 충돌 발생 - Full Duplex (완전 이중 모드)
: 송신로와 수신로가 분리되어 있는 것
: 데이터 전송이 양방향으로 동시에 전송 가능
계층별 장비 정보
계층 | 대표적인 장비 | 전송 방식 | 특징 |
1계층 | 더미 허브 | - 플러딩(flooding) 방식으로 전송 - Half Duflex 모드 |
- 브로드캐스트 제어 능력이 없음 - Half Duflex 모드를 사용하므로 송신로/수신로가 동일하여 충돌 (Collision) 제어 능력이 없음 |
2계층 | 스위치 브릿지 |
- 2계층 주소 (MAC)을 기반으로 프레임 전송 - 플러딩, 포워딩 방식으로 전송 - Full Duflex 모드 (여러개의 호스트가 동시에 전송 시 사용됨) |
- 브로드캐스트 제어 능력이 없음 - Full Duflex 모드를 사용하므로 충돌 (Collision) 제어 능력이 있음 - 스위치에 MAC Address Table이라는 경로 관련 DB Table을 가지고 있음 |
3계층 | 라우터 | - IP 주소를 기반으로 패킷 전송 - 포워딩 방식으로 전송 - Full Duplex 모드 |
- 브로드캐스트 제어 능력이 없음 - Full Duflex 모드를 사용하므로 충돌 (Collision) 제어 능력이 있음 - 라우터에 Routing Table이라는 경로 관련 DB Table을 가지고 있음 |
* 플러딩(flooding) : 송신지 포트를 제외한 나머지 포트들로 트래픽 전송
* 포워딩 : 특정 포트에서 특정 포트로만 트래픽 전송
[2계층 장비에서 갖추고 있는 MAC Address Table을 통한 포워딩/플러딩 방식 구분]
MAC Address Table은 경로와 관련된 테이블로 송신지와 수신지가 정해졌을 때, 이미 정해진 목적지로 향하는 경로가 정해져있는 경우 특정한 포트로 보내도록 경로를 구성할 수 있다.
이와 같이 기존에 지정된 내역이 있으면 '포워딩' 방식으로 지정된 포트로 전송
MAC Address Table에 지정된 내역이 없으면 송신지를 제외한 모든 포트에 데이터를 보내는 '플러딩' 방식 사용
[3계층 장비의 Routing Table 사용 방식]
3계층의 대표적인 장비인 Router는 패킷을 송수신하기 위한 경로 관련 테이블로 Routing Table을 가진다.
이 테이블은 2계층과 다르게 사용방식이 조금 차이가 있는데 2계층은 포워딩/플러딩이 모두 가능하지만 3계층은 포워딩만 가능하다.
Routing Table에 수신지 (특정 IP에 대한 Network ID)로 향하는 정보를 가지고 있으면 해당 패킷은 포워딩 방식으로 전송되지만, 목적지에 대한 정보를 가지고 있지 않은 경우 해당 패킷은 버려지게 된다.
'Server' 카테고리의 다른 글
[네린이 공부일기] ICMP (Internet Control Message Protocol), Ethernet Frame, ARP Packet (0) | 2022.04.18 |
---|---|
[네린이 공부일기] TCP/IP 통신모델, TCP Header, IP Header, TCP와 UDP 차이 (0) | 2022.04.17 |
[네린이 공부일기] 브로드캐스트 도메인, CIDR 표기법, 서브넷팅 (0) | 2022.04.13 |
[네린이 공부일기] 사설 IP/공인 IP, NAT (네트워크 주소 변환) (0) | 2022.04.12 |
[네린이 공부일기] 기초 중의 기초 IP주소 체계 (0) | 2022.04.11 |