#dokydoky
OSI 와 TCP/IP 본문
네트워크 배우는 첫 날에 배운 OSI와 TCP/IP,
OSI와 TCP/IP를 간단히 말하면 둘 다 통신을 위한 프로토콜군중에 하나이다.
프로토콜이란 쉽게 말해서 통신을 원활하게 하기 위해 정해진 절차라고 할 수 있고,
프로토콜군은 이러한 프로토콜들이 여러개 모여있는 것을 말한다.
프로토콜을 라면 끓이는 것에 비유해보면,
1. 물을 끓인다.
2. 라면 봉지를 뜯고 스프를 넣는다.
3. 면을 삶는다.
4. 계란을 넣는다.
이런 각각의 과정이 프로토콜이고 전체를 묶어서 프로토콜군이라고 한다.
OSI와 TCP/IP 등과 같이 프로토콜을 표준화 시킨 이유는 개발자를 위해서다.
만약 프로토콜이 표준화 되어있지 않다면, 개발자는 네트워크에서 통신프로토콜과 발생하는 모든 일을 생각하여 프로그램에 포함시켜야 한다, 하지만 이렇게 프로토콜이 표준화되어있다면 표준화된 프로토콜을 사용함으로써 개발을 훨씬 효율적으로 할 수 있다.
OSI(Open System Interconnection) 는 세계 국제 표준기구인 ISO가 7계층의 모델로 제안한 방식으로.
7계층 - Application - 사용자 인터페이스 / 응용 프로그램
6계층 - Presentation - 데이터 포맷 / 암호화
5계층 - Session - 연결 유지
4계층 - Transport - 패킷 생성 / 패킷 오류 관리
3계층 - Network - 논리적 주소(IP) 관리 / 경로 설정
2계층 - Data Link - 물리적 주소(MAC)관리
1계층 - Physical - 네트워크의 물리적 주소(케이블, 신호방식)
으로 나뉜다. 데이터를 송신할 때는 위에서 아래로, 데이터를 수신할 때는 아래서 위의 방향으로 데이터를 처리한다. 또한, 송신할 때는 각 층을 지나며 데이터의 앞에 헤더나 데이터의 뒤에 트레일러를 추가시키며, 수신할 때는 각 층에서 자신의 층과 같은 층에서 추가된 헤더와 트레일러를 보고 일을 수행한다. 각각의 층에서 헤더와 트레일러를 추가한 후에 캡슐화를 한 후에 다른 층에 넘겨주기 때문에 각각의 층에서의 일은 독립되어 있다.
TCP/IP는 인터넷의 90%이상이 사용하는 프로토콜이다. 이는 ARPANET에서 유래된 것이다.
TCP/IP는 OSI와 달리 5계층으로 나뉜다. TCP/IP의 프로토콜군에는 각각 TCP와 IP라는 프로토콜이 있는데, 이를 구분하기 위해 TCP/IP를 프로토콜군이라 부르며, 일반적으로 TCP/IP라 하면 프로토콜군을 말한다. 5계층의 프로토콜군을 TCP/IP라 부르는 것은 주요한 프로토콜이 TCP와 IP이기 떄문이다.
TCP/IP는 책에 따라 5계층으로 구분한 것과 4계층으로 구분한 것이 있다.
5계층으로 나누면
5계층 - Presentation
4계층 - Transport
3계층 - Network
2계층 - Data Link
1계층 - Physical
의 형태이다. OSI와 비교해보면 Presentation층이 OSI의 Presentation, Presentation, Session 층으로 묶여 있다는 것이 차이점이다. OSI를 4계층으로 나누면 다음과 같다.
TCP/IP를 5계층 기준으로 하는 일을 나눠보면
- 애플리케이션 층
애플리케이션층은 통신서비스를 실현하는 층으로 다른 4개의 층과 달리 서버와 클라이언트의 개념을 갖는다. 서버는 데이터를 제공해주고, 클라이언트는 제공을 받는 것이다. 이 층에서는 서버와 클라이언트의 주고받기를 결정하는 애플리케이션 프로토콜이 있다. 서버는 데이터를 저장하며 데이터를 제공해 주는 곳이며, 클라이언트는 우리가 쓰는 대부분의 프로그램을 말한다. 예를 들어 WWW에서는 WWW서버가 있을테고, 클라이언트는 웹브라우저이며, 프로토콜은 HTTP를 사용한다.
이외에도 애플리케이션층의 프로토콜은 메일에서사용하는 SMTP와 POP 등이 있으며 필요한 통신서비스에 맞춰 사용한다.
- 트랜스포트 층
트랜스포트층은 데이터를 상대에게 전달하는 역할을 한다. 수신측에서는 트랜스포트층에서 포트번호를 보고 알맞은 애플리케이션 프로토콜에게 데이터를 전달한다.
프로토콜에는 TCP와 UDP 두 가지가 있다. TCP(Transmission Control Protocol)은 데이터를 안전하고 확실하게 전달하는 것을 목적으로 데이터의 정확성이 요구되는 서비스에 사용된다. UDP는 TCP와는 달리 데이터를 빨리 전송하는 것이 목적으로 TCP보다는 절차가 단순하고 속도도 빠르다. 이는 데이터의 전송속도가 중요한 서비스에서 사용된다.
- 네트워크 층
네트워크층은 여러개의 네트워크를 지나서 수신인의 컴퓨터에 데이터를 전달하는 역할을 한다. 네트워크 층에서의 주된 프로토콜은 IP(Internet Protocol)하나 뿐이며, 이를 보조해 주는 ICMP가 있다.
IP프로토콜에서는 수신인의 기기를 지정하기 위해 IP주소를 사용하며 이는 4옥텟(32비트)로 구성되어있다. ICMP는 데이터가 전달되는 과정에서 문제가 생기면 알려주는 기능으로 IP프로토콜을 보조해주는 역할을 한다. 네트워크 층의 주된 장비는 라우터가 있으며, 경로를 설정하는 라우팅이라는 중요한 기능을 수행한다.
- 데이터링크 층
같은 규칙을 바탕으로 연결되어 있는 한 덩어리의 기기를 데이터 링크라 하고, 데이터 링크내에서의 로컬 규칙을 처리하기 위해 있는 것이 데이터 링크층의 프로토콜이다. 데이터 링크층은 데이터 링크간의 차이를 흡수한다. 이 층의 프로토콜은 데이터 링크 안에서 데이터를 어떻게 주소 받을지를 결정하는 역할을 한다. 데이터 링크 내에서의 기기를 식별할 때는 LAN카드에 적힌 MAC(Media Access Control Address) 주소를 이용한다.
※ 데이터 링크를 구성하는 요소에는 노드(PC, 통신관리기기), 통신매체(케이블), 노드와 통신매체를 연결하는 기기(NIC) 으로 이루어져 있다.
- 물리층
물리층에서는 비트열과 신호의 변환이 일어나는 층이다. 이는 특별한 프로토콜이 없이 기기의 자체적 성질에 의존한다
'Network & Encryption' 카테고리의 다른 글
HTTPS - 1. 그림으로 살펴보는 HTTPS (0) | 2018.04.12 |
---|---|
[기술문서] Packet Injection (0) | 2013.11.20 |
Packet Fragment (0) | 2011.04.07 |
케이블에 대해서... (0) | 2011.03.31 |
Date Link층과 Network층 (0) | 2011.03.31 |