통신 접속에서 완료까지의 과정을 7단계로 정의한 국제 통신 규약
7계층으로 나눈 이유?
- 각 계층이 독립적인 역할 수행 가능
- 문제 발생 시 어떤 계층에 문제가 발생했는지 쉽게 파악 가능
물리 계층
실제 장치들을 연결하기 위해 필요한 전기적, 물리적 세부 사항을 정의하는 계층
- 전기적, 기계적인 신호를 주고 받는 역할 ( 비트 0, 1 단위로 통신 )
- 데이터의 종류나 오류를 제어하지 않음
- 통신 채널을 통해 전송되는 사용자 장치의 디지털 데이터를 이에 상응하는 신호들로 변환
- 대표적인 장비 : 통신 케이블, 허브, 리피터
데이터링크 계층
Point to Point 간의 신뢰성 있는 전송을 보장하기 위한 계층
- 프레임에 MAC 주소를 부여하고 에러검출, 재전송, 흐름제어를 진행하는 역할
- 전송 데이터에 대한 CRC 오류제어가 필요
- 전송 단위 : 프레임 (Frame)
이더넷 (Ethernet)
- 컴퓨터 네트워크 기술의 하나로 일반적으로 LAN, MAN 및 WAN에서 가장 많이 활용되는 기술 규격
- 네트워크에 연결된 각 기기들이 48비트 길이의 고유의 MAC 주소를 가지고 상호 간에 데이터를 주고받을 수 있도록 만들어짐
- 대표적인 장비 : 스위치, 브리지
네트워크 계층
데이터를 목적지까지 빠르고 안전하게 전달하는 계층
- IP 주소를 제공하는 계층으로 대표적으로 노드를 거칠 때마다 라우팅 해주는 역할
- 패킷을 발신지에서 목적지까지 네트워크를 통해 전달하기 위해 라우팅 프로토콜로 최적의 경로를 선택
- 전송 단위 : 패킷 (Packet)
패킷 (Packet)
Pack + Bucket, 우체국에서는 화물을 적당한 덩어리로 나눠 행선지를 표시하는 꼬리표를 붙이는데 이를 네트워크 통신에 접목
- 정보기술에서 패킷 방식의 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록으로 컴퓨터 네트워크에서 데이터를 주고 받을 때 정해놓은 규칙
- 정보를 보낼 때 특정 조각을 맞추어 보냄 (컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해서 전송되는 데이터 조각)
- 구성요소 : 헤더 (소스 주소, 대상 주소, 프로토콜 및 패킷 번호), 페이로드 (패킷에 의해 전송되는 실제 데이터), 트레일러 (수신장치에 패킷 끝까지 도달했음을 알리는 몇 비트와 컴퓨터가 모든 패킷이 완전히 수신 되었는지 확인할 수 있는 Cycle Redundancy Check 포함)
- 대표적인 장비 : 라우터, L3 스위치, IP 공유기
프레임 vs 패킷
주요 차이점 : 정보를 포장하는 방법, 이는 어느 정보를 어디에 보내느냐에 따라 달라짐
프레임 < 일련의 비트 집합 (패킷을 캡슐화) >
- 데이터를 담는 컨테이너, 동일 네트워크 상의 두 지점 간에 정보를 전달할 소스(발신지)와 수신지를 가지고 있음
- 프레임 소스와 목적지 주소는 MAC 주소LAN 바깥의 인터넷으로는 보낼 수 없음 (반드시 패킷으로 만들어야함)
패킷 < 조각화 된 데이터 형식 (세그먼트를 캡슐화) >
- 프레임 + 추가정보
- 정보를 서로 다른 LAN 간에 라우터를 통해 주고받을 수 있음 → MAC 주소 대신 IP 주소를 사용해 패킷 전달
전송 계층
양 끝단 (End to End)의 사용자들이 데이터를 주고받을 수 있게 하는 계층
- TCP와 UDP 프로토콜을 통해 통신을 활성화 하는 역할
- 대표적인 프로토콜 : TCP / UDP 프로토콜
- TCP 프로토콜
- 신뢰성 있는 통신을 보장 (데이터가 전송되는 과정에서 여러 스위치, 라우터 등을 거치면서 데이터가 잘못 전달되는 현상이나 전달이 안될 경우 오류제어, 흐름제어를 통해 신뢰성 있는 데이터가 전달 되도록 함)
- 3-way handshaking 방식으로 목적지와 상호 패킷을 교환하여 연결, 연결 종료 시 4-way handshaking 사용
- UDP 프로토콜
- 비연결형 프로토콜, 데이터를 빠르게 전달하는 데 초점을 두고 있음
- 데이터를 전달할 때 TCP에 비해 오버헤드가 적음
- 신뢰성 있는 전송보다 스트리밍 같이 연속적인 특성을 가지고 있는 서비스에 이용
- 종단 간 통신을 다루는 최하위 계층
- 전송 단위 : 세그먼트 (Segment) - TCP, 데이터그램 (Datagram) - UDP
세션 계층
응용 프로그램 간의 대화를 유지하기 위한 구조를 제공하고, 이를 처리하기 위해 프로세스들의 논리적인 연결을 담당하는 계층
- 데이터가 통신하기 위한 논리적인 연결을 담당하는 역할
- TCP/IP 세션을 만들고 없애는 책임을 짐
- 통신하는 사용자들을 동기화 하고 오류복구 명령들을 일괄적으로 다룸
- 전송 모드 결정 (반이중, 전이중, 단방향, 병렬, 직렬, 동기, 비동기)
- 대표적인 프로토콜 : RPC, API, Socket
표현 계층
데이터 표현에 대한 독립성을 제공하고 암호화 하는 계층
- 코드 간의 번역을 담당하여 사용자 시스템에서 데이터 형식상 차이를 다루는 부담을 응용계층으로부터 덜어주는 역할
- MIME (Multipurpose Internet Mail Extension) 인코딩이나 암호화 ,압축 등의 동작
응용 계층
응용 프로세스와 직접 관계하여 응용 서비스들을 수행하는 계층
- 응용 프로세스가 개방된 형태로 다양한 범주의 정보처리 기능을 수행할 수 있도록 여러가지 프로토콜을 개체에 대하여 사용자 인터페이스 제공하는 역할
- 최종 목적지 (사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스 제공)
- 대표적인 프로토콜 : HTTP, FTP (File Transfer Protocol), SMTP, DNS 등
'CS' 카테고리의 다른 글
[Network] TCP 3-way & 4-way handshake (0) | 2022.01.11 |
---|