OSI 7 계층
- OSI = Open Systems Interconnection Reference Model
- 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것
- 하위 계층 → 상위 계층에 서비스 제공
왜 ?
✔️ 통신이 일어나는 과정을 단계별로 파악하기 위해!
✔️ 통신 과정에서 문제가 발생할 경우, 다른 단계를 건드리지 않고, 해당 단계만 고치면 됨!
💡 OSI 7Layer : 네트워크 전송 시 데이터 표준을 정리
💡 TCP/IP 4계층 : 정리한 이론을 실제로 사용하는 인터넷 표준
1 Layer - Physical Layer ( 물리 계층 )
- 전기 신호의 전송만을 담당
- 송수신 데이터가 무엇인지, 어떤 에러가 있는지 등은 신경쓰지 않음
- 장비 : 통신 케이블, 리피터, 허브 등
- 전송 단위 : 비트 (Bit)
2 Layer - DataLink Layer ( 데이터 링크 계층 )
- 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리
1) 에러 검출(Error Control) → 재전송 요청 (발생지를 모르므로 수정은 불가)
2) 흐름 제어(Flow Control)
: frame을 몇개 보낼지 (수신자가 수용할 수 있는 데이터 속도를 초과하지 않도록)
- Stop and Wait (한 번에 한 프레임만 전송)
- Sliding window (한 번에 여러 프레임을 전송)
3) Framing : 하나의 frame의 크기 결정
⇒ 안전한 정보의 전달 수행 (네트워크 계층에게 오류없는 물리계층으로 보이도록 함)
- Point to Point (하나의 링크 간의 전송을 책임짐)
- 장비 : 브리지, 스위치, 이더넷 등
- 전송 단위 : 프레임 (frame)
- 주소 : MAC address
3 Layer - Network Layer ( 네트워크 계층 )
- 데이터를 목적지(host)까지 가장 안전하고 빠르게 전달
1) Forwarding (Data Plane)
- pkt을 알 맞은 다음 라우터로 전달하는 것
- 하드웨어 영역에서 발생 (nanosecod 단위 소모)
2) Routing (Control Plane)
- 출발지에서 목적지까지 경로를 결정하는 것 ( = forwarding table을 채우는 것)
- 소프트웨어 영역에서 발생 (millisecond 단위 소모)
* SDN (Software-Defined Networking)
: 오버 헤드가 큰 라우팅을 따로 분리하여 원격 서버에서 관리하는 것
- End to End
- 장비 : 라우터, 스위치에 라우팅 기능을 장착한 Layer 3 스위치도 존재
- 전송 단위 : 패킷 (packet)
- 주소 : IP address
💡 DataLink Layer 의 초점 : 지금 내가 보내고자 하는 pkt이 바로 다음 라우터에 잘 도착했는지!
💡 Network Layer 의 초점 : Sender에서 보낸 pkt이 라우터를 잘 거쳐서 목적지에 잘 도착했는지!
4 Layer - Transport Layer ( 전송 계층 )
- host안에 존재하는 많은 프로세스 중 목적지 프로세스로 전달
* 컴퓨터에는 여러개의 어플리케이션이 돌아가고, 각 어플리케이션들은 하나 이상의 Socket 생성 가능
1) Multiplexing
- 소켓에 의해 Application layer에서 Transport layer로 pkt이 전달될 때,
여러 소켓의 pkt을 수집하여 하나의 segment에 캡슐화하여 Network layer로 전달하는 과정
2) Demultiplexing
- Transport layer 에서 Application layer로 segment가 전달 될 때, 올바른 소켓으로 전달 하는 과정
= 들어온 segment가 어떤 소켓으로 보내져야 할지
- 정확한 어플리케이션의 소켓으로 전달해주기 위해 포트넘버를 활용 (in segement의 헤더)
- Application Layer에서 만든 데이터를 일정한 크기로 자름
- 전송 단위 : 세그먼트 (segment) - TCP / 데이터그램(datagram) - UDP
- 주소 : Port 번호
Transport Layer Protocol 종류
TCP (Transmission Control Protocol) | UDP (User Datagram Protocol) |
연결형 프로토콜 * 연결 설정 : 3-way handshaking * 연결 해제 : 4-way handshaking |
비 연결형 프로토콜 |
신뢰성 있는 데이터 전송 (재전송 지원) | 비신뢰성 데이터 전송 (재전송 미지원) |
in-ordered (패킷을 보낸 순서대로 받음) | un-ordered (패킷의 순서를 보장하지 않음) |
일대일(unicast) 통신 | 일대일, 일대다(broadcas), 다대다(multicast) 통신 |
연속성보다 신뢰성 있는 전송이 중요할 때에 사용 | 신뢰성보다는 연속성이 중요한 실시간 스트리밍과 같은 서비스에 자주 사용 |
Error Detection (에러 탐지) | |
Multiplexing / DeMulitplexing |
3-way handshaking, 4-way handshaking
3-way : 들려?(SYN) → 응 들려!(ACK) 너도 들려?(SYN) → 응 들려!(ACK) (+HTTP request도 보통 함께 전송)
4-way : 종료할게?(FIN) → 응 알겠어! 근데 잠시만! (ACK) 이제 종료해!(FIN) → 오케이!(ACK)
💡 Network Layer : 메세지를 목적지(host)까지 전달!
💡 Transport Layer : 목적지(host)안에 존재하는 많은 프로세스 중 최종 목적지 프로세스(응용 프로그램)까지 전달
5 Layer - Session Layer ( 세션 계층 )
- 주 지점간의 프로세스 및 통신하는 호스트 간의 연결 유지
- TCP/IP 세션 체결, 포트번호를 기반으로 통신 세션 구성
- API, Socket
- 전송 단위 : 메세지 (message)
6 Layer - Presentation Layer ( 표현 계층 )
- 전송하는 데이터의 표현방식을 결정
- ex) 데이터 변환, 파일 인코딩, 압축, 암호화 등
- 전송 단위 : 메세지 (message)
7 Layer - Application Layer ( 응용 계층 )
- 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
- ex ) explore, chrome 등
- 전송 단위 : 메세지 (message)
'CS > 네트워크' 카테고리의 다른 글
Transport Layer (전송 계층) (0) | 2023.02.27 |
---|---|
Application Layer ( 응용 계층 ) (0) | 2023.02.27 |