7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도
이상이 생긴 단계만 고칠수 있기 때문이다.
1계층 (물리 계층)
- 주로 전기적, 기계적 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하게 된다.
- 통신 단위는 비트이며 이것은 1, 0으로 나타내어지는, 즉 전기적으로 On, Off라고 생각하면 된다.
- 데이터를 전달만 할 뿐 전송하려는(혹은 받으려는) 데이터가 무엇인지, 어떤에러가 있는지 등에 전혀 신경 쓰지않는다.
대표적 장비
통신 케이블, 리피터, 허브
-> 케이블, 리피터, 허브를 통해 데이터 전송
2계층 (데이터 링크 계층)
- 물리계층을 통해 송수신 되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행 할 수있도록 도와주는 역할을 한다.
따라서 통신에서의 오류도 찾아주고 재전송도 하는 기능을 갖고 있다.- 맥 주소를 가지고 통신하게 된다.
- 전송되는 단위를 프레임이라고 한다.
- 2계층은 포인트 투 포인트 간 신뢰성있는 전송을 보장하기 위한 계층으로 CRC 기반의 오류 제어와 흐름 제어가 필요하다.
- 네트워크 위의 개체들 간 데이터를 전달하고, 물리 계층에서 발생할 수 있는 오류를 찾아내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공한다.
- 주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때 부터 맥(MAC Address)가 정해져 있다는 뜻이다.
- 주소 체계는 계층이 없는 단일 구조이다. 데이터 링크 계층의 가장 잘 알려진 예는 이더넷이다.
- 이 외에도 HDLC나 ADCCP 같은 포인트 투 포인트 프로토콜이나 패킷 스위칭 네트워크나 LLC, ALOHA 같은 근거리 네트워크용 프로토콜이 있다.
- 네트워크 브릿지나 스위치 등이 이 계층에서 동작하며, 직접 이어진 곳에만 연결 할 수 있다.
대표적 장비
브릿지, 스위치(여기서 MAC 주소를 사용)
-> 프레임에 주소부여(MAC - 물리적 주소), 에러검출/재전송/흐름제어
3계층 (네트워크 계층)
- 가장 중요한 기능은 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)이다.
- 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해 주는 것이 이 계층의 역할이다.
- 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층
- 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공한다.
대표적 장비
라우터, 스위치에 라우팅 기능을 장착한 Layer 3 스위치
-> 주소부여(IP), 경로설정(Route)
- 논리적인 주소 구조(IP), 곧 네트워크 관리자가 직접 주소를 할당하는 구조를 가지며, 계층적(hierarchical)이다.
IP계층
- TCP/IP 상에서 IP 계층이란 네트워크의 주소(IP 주소)를 정의하고, IP 패킷의 전달 및 라우팅을 담당하는 계층
주요 역할
- IP 계층에서는 그 하위 계층인 데이터링크 계층의 하드웨어적인 특성에 관계없이 독립적인 역할을 수행
IP 계층상에 있는 주요 프로토콜
- 패킷의 전달을 책임지는 IP
- 패킷 전달 에러의 보고 및 진단을 위한 ICMP
- 복잡한 네트워크에서 인터네트워킹을 위한 경로를 찾게해주는 라우팅 프로토콜
IP 프로토콜
- TCP/IP 기반의 인터넷 망을 통하여 데이터그램의 전달을 담당하는 프로토콜
주요 기능
- IP 계층에서 IP 패킷의 라우팅 대상이 됨(Routing)
- IP 주소 지정(Addressing)
주요 특징
- 신뢰성(에러제어) 및 흐름제어 기능이 전혀 없음(-> Best-Effort Service)
- 신뢰성을 확보하려면 IP 계층 위의 TCP와 같은 상위 트랜스포트 계층에 의존
- 비연결성 데이터그램 방식으로 전달되는 프로토콜(-> Connectionless)
- IP 패킷 헤더 내 수신 및 발신 주소를 포함(-> IPv4 헤더, IPv6 헤더, IP 주소)
- IP헤더 내 바이트 전달 순서: 최상위 바이트(MSB)를 먼저 보냄(-> Big-endian)
- 경우에 따라, 단편화가 필요함(-> IP 단편화 참조)
- TCP, UDP, ICMP, IGMP 등이 IP 데이터그램에 실려서 전송
4계층 (전송 계층)
- 통신을 활성화하기 위한 계층이다. 보통 TCP 프로토콜을 이용하며, 포트를 열어서 응용프로그램들이 전송을 할 수 있게한다.
- 만약 데이터가 왔다면 4계층에서 해당 데이터를 하나로 합쳐서 5계층에 전달한다.
- 전송 계층(Transport layer)은 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
- 시퀀스 넘버 기반의 오류 제어 방식을 사용한다.
-> 패킷 생성(Assembly/Sequencing/Deassembly/Error detection/Request repeat/Flow control) 및 전송
TCP 프로토콜(Transmission Control Protocol)
- 신뢰성 있음
- 연결지향적
UDP 프로토콜(User Datagram Protocol)
- 비연결성이고, 신뢰성이 없으며, 순서화되지않은 Datagram 서비스 제공
- 실시간 응용 및 멀티캐스팅 가능
- 헤더가 단순함
5계층 (세션 계층)
- 데이터가 통신하기 위한 논리적인 연결을 말한다.
- 동시 송수신 방식(Duplex), 반이중 방식(Half-Duflex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행
- 이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.
6계층 (표현 계층)
- 데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다.
- 코드 간의 번역을 담담ㅇ하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어준다.(MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어짐)
대표적인 예
EBCDIC로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔주는 것 해당 데이터가 TEXT인지, 그림인지, GIF인지, JPG인지의 구분
-> 사용자의 명령어를 완성 및 결과 표현, 포장/압축/암호화
7계층 (응용 계층)
- 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
- 사용자와 가장 밀접한 계층으로 인터페이스 역할을 한다.
- 응용 프로세스 간의 정보교환을 담당
대표적인 예
전자메일, 인터넷, 동영상 플레이어
-> 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분
HTTP 프로토콜(HyperText Transfer Protocol)
- 웹 상에서 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 응용 계층 프로토콜
- 처음에는 WWW 상의 하이퍼 텍스트 형태의 문서를 전달하는데 주로 이용
- 현재에는 이미지, 비디오, 음성 등 거의 모든 형식의 데이터 전송 가능
1. 요청 및 응답의 구조
- 동작 형태가 클라이언트/서버 모델로 동작
2. 메세지 교환 형태의 프로토콜
- 클라이어느와 서버간에 HTTP 메세지를 주고받으며 통신(SMTP 전자메일 프로토콜과 유사)
- HTTP의 응답 및 요청 메세지 구성
- HTTP 메세지 내 헤더 항목들
3. 트랜잭션 중심의 비연결성 프로토콜
- 종단간 연결이 없음(->Connectionless)
- 이전의 상태를 유지하지않음(Stateless)
4. 전송 계층 프로토콜 및 사용 포트 번호
- 전송계층 프로토콜: TCP
- 사용 포트 번호: 80번
5. http 표쥰
- HTTP 헤더, HTTP 메서드, HTTP 응답 코드, 리다이렉트, 비지속 연결 등
- 잘 정의된 캐시 컨트롤
- 블록 단위 인코딩 전송
- 지속 연결 회선(킵얼라이브 커넥션)을 통한 재사용 가능