계층 분리
- 큰 하나의 일련의 과정을 세부적으로 쪼개어 모듈화, 분업화
- 각 모듈은 본인에게 할당된 일에만 집중할 수 있고, 다른 부분 신경 X
- 인접한 모듈에게 약속된 서비스를 받고 주기만 하면 됨
- 내부 구현 방식에 변화가 있더라도 다른 모듈들에게는 영향 X → 독립성 $\uparrow$
1. 물리 계층 (Bit)
리피터, 케이블, 허브 등
신호로 변환하여 전송하는 계층
- 데이터를 전지적인 신호로 변환해서 주고받는 기능 ⇒ 데이터를 전송하는 역할만 진
- 물리적 기기에서 물리적 특성과 기능 정의
- 비트 처리 방식 결정 → 0과 1을 나타내는 전압 정의
- 전송 매체 결정
- 전송 방식(simplex, duplex, half duplex 등) 결정
- 데이터 전송 속도 결정
2. 데이터 링크 계층 (Frame)
브릿지, 스위치 등
물리적 매체에 패킷 데이터를 실어 보내는 계층 - 환경에 맞는 다양한 통신 프로토콜 지원
주요 기능
주소 할당: 물리 계층으로부터 받은 신호들이 네트워크 상의 장치에 올바르게 안착할 수 있게 한다.
오류 감지: 신호가 전달되는 동안 오류가 포함되는지를 감지한다. 오류가 감지되면 데이터 링크 계층은 해당 데이터를 폐기한다.
- 전진 오류 수정
- 해밍 코드
- 상승 코드
후진 오류 수정
- 오류 검출 방식
패리티 검사 (Parity Check)
블록합 검사 (Block Sum check)
- (검출 후) 재전송 방식 (Automatic Repeat Request)
순환잉여검사(CRC : Cycle Redundancy Check)
Stop and Wait ARQ방식
Go-back-N방식
Selective-Repeat ARQ 방식
적응성(Adaptive)ARQ 방식
흐름 제어 : 데이터 손실을 방지하기 위해 송/수신자 사이의 데이터 처리 속도를 제어한다
- Stop and Wait : 송신측에서 프레임을 전송한 후 확인응답(ACK)을 받을 때까지 대기하는 방식
- Sliding Window : 송신측에서 수신측의 확인응답을 받기 전에 수신 가능한 범위 내에서 여러 프레임을 전송
Network Layer와 Physical Layer 연결
비트 전송에서의 오류 검출
동일한 네트워크 세그먼트(브리지/스위치)에 있는 두 장비 사이의 데이터(Frame) 전송 ⇒ Forwarding
- 프레이밍 : 3계층에서 받은 데이터 그램을 캡슐화 → 프레임
- 헤더 → 목적지, 출발지 주소, 데이터 내용 정의, 트레일러→ 비트 에러 감지
Sublayer
- Logical Link Control(LLC)
- Network 계층과 MAC 사이의 인터페이스 담당
- Flow Control, Error Notification
- Media Access Control(MAC)
- Layer 2 주소 체계 제공
- Frame Conflict 탐지 및 회피
- 프레임 시작과 끝 정의
- Logical Link Control(LLC)
3. 네트워크 계층 (Packet)
라우터, IP
네트워크를 논리적으로 구분하고 연결하는 계층 - 논리적 주소 사용
데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능을 담당한다
- 데이터들의 Route 경로 제공
- Forwarding, Routing
- 외부 주소를 찾아야할때는 Routing
- 동일 router 안에서는 Forwarding
- IP 주소로 통신 → Connectionless
4. 전송 계층 (Segment)
TCP, UDP
서비스를 구분하고 데이터의 전송 방식을 담당하는 계층 (TCP/UDP)
최초의 End-to-End 통신이 일어남
TCP (Transmission Control Protocol, 전송제어 프로토콜)
연결 지향(Connection Oriented)
→ 송신자와 수신자 모두가 소켓이라고 부르는 종단점을 생성함으로써 이루어진다
⇒ handshake를 통해
전이중(full-duplex), 점대점(point to point) 방식 → 양방향 전송 가능, 연결점은 2개만 존재
- 멀티캐스팅, 브로드 캐스팅 지원하지 않음
흐름 제어 → 슬라이딩 윈도우
UDP (User Datagram Protocol, 사용자 데이터그램 프로토콜)
- 비연결형 프로토콜 → 흐름제어, 오류제어, 손상된 세그먼트 수신에 대한 재전송을 하지 않음
- 비신뢰성, 비연결성, 실시간
5. 세션 계층 (Message)
API, Socket
응용 프로그램 간의 연결을 지원해주는 계층
- 데이터가 통신하기 위한 논리적 연결을 담당
- TCP/IP 세션을 만들고 없애는 책임
- Transport Layer의 Port를 통과
- 사용자의 Credential 인증
6. 표현 계층 (Message)
JPEG, MPEG 등
데이터의 변환 작업을 하는 계층
- 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할
- 파일 인코딩, 명령어를 포장, 압축, 암호화
7. 응용 계층 (Message)
HTTP, FTP, DNS 등
User Interface 를 제공하는 계층
- 사용자와 가장 밀접한 계층, 인터페이스(Interface) 역할
- 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행