TCP/IP Layering

TCP/IP 프로토콜 스위트에서는 여러 프로토콜이 있다.

사용자 삽입 이미지TCP/IP 프로토콜 스위트에서 각 계층에서 사용하는 다양한 프로토콜들..

TCP와 UDP는 가장 널리 사용되고 있는 전송 계층 프로토콜로 둘 다 네트워크 계층으로 IP를 사용한다.

TCP는 자신이 사용하는 서비스(IP)가 비록 신뢰할 수 없음에도 불구하고 신뢰할 수 있는 전송 계층을 제공한다. 17~22장에서 자세히 살펴봄. 텔넷(26장), FTP(27장), SMTP(28장)

UDP는 애플리케이션데 대한 데이터그램을 주고 받는다. 데이터그램은 정보 단위로(보내는 쪽에서 정의한 정보를 몇몇 바이트로 나타낸것) 보내는 쪽에서 받는 쪽으로 전송된다. TCP와는 달리 데이터그램이 최종 목적지로 갈 것이라는 보장을 할 수 없다. 11장에서 자세히 살펴봄. DNS(14장), TFTP(15장), Bootstrap Protocol(16장)에서 UDP를 사용하는 애플리케이션 몇 개를 살펴본다.

IP는 네트워크 계층의 핵심 프로토콜로 TCP와 UDP가 이것을 사용한다. 모든 TCP와 UDP 데이터는 IP 계층을 통해서 종단 시스템과 모든 중계 라우터를 거쳐간다. 그림을 보면 애플리케이션에서 IP 계층에 직접 접근하는 모습도 보인다. 이는 드물지만 가능하다. 3장에서 IP를 살펴보고 9, 10장에서 IP 라우팅을 살펴본다.

ICMP는 IP의 부속물로. IP 계층에서 에러 메시지와 다른 호스트 또는 라우터에 있는 중요한 정보 변환에 사용된다. 6장에서 자세히 살펴본다. IP가 주로 사용하며 애플리케이션에서 직접 접근하는 것도 가능하다. ICMP를 사용하는 두 가지 주요 진단 도구인 Ping과 Tracerout를 7, 8장에서 살펴본다.

IGMP는 인터넷 그룹 관리 프로토콜로 UDP 데이터그램을 여러 호스트에 보내는 멀티캐스팅(multicasting)이 사용한다. 브로드캐스팅과 멀티캐스팅은 12장에서 다루고 IGMP에 대해서는 13장에서 다룬다.

ARP(Address Resolution Protocol)와 RARP(Reverse Address Resolution Protocol)은 (이더넷과 토큰링 같은) 특정 타입의 네트워크 인터페이스에서 사용한다. 이 프로토콜들을 사용하여 IP 계층에서 사용하는 주소와 네트워크 인터페이스에서 사용하는 주소를 변환한다. 4, 5장에서 이를 다룬다.

Layering

사용자 삽입 이미지
1. Link: 하드웨어적인 것들을 다루는 계층
2. Network: 네트워크 간에 패킷 이동을 다루는 계층
3. Transport: 호스트 간에 데이터 흐름을 제공하는 계층.
– TCP: 신뢰할 만한 데이터 전송. 하위의 네트워크 계층에 보낼 크기로 데이터를 나누는 작업, 받은 패킷 알려주기, 타임 아웃 설정 등을 다루기 때문에 애플리케이션 계층에선 이런걸 신경쓰지 않아도 됨.
– UDP: 데이터그램이라는 데이터 패킷으로 전송만 하고 목적지로 데이터 그램이 보내질지는 보장 못함. 신뢰성이 필요하면 애플리케이션 계층에서 추가작업 해야 함.
4. 애플리케이션 계층: 텔넷, FTP, SMTP, SNMP등 애플리케이션 관련 내용을 다루는 곳

사용자 삽입 이미지
1,2,3 VS 4 로 구분할 수 있다.
– kernel VS user processes
– 커뮤니키에션 담당 VS 애플리케이션 담당

네트워크 계층하고 전공 계층을 왜 나눠 뒀을까? 이걸 이해하려면 단일 네트워크 말고 여러 네트워크로 시각을 넓혀야 한다.

네트워크가 커져가면서 여러 네트워크를 라우터(router)에 연결하여 인터넷을 구성하는 것이 가장 간단한 방법이 된다. 라우터는 여러 하트웨어 박스를 네트워크에 연결할 때 사용한다. 여러 종류의 물리적 네트워크(이더넷, 토큰 링, p2p, FDDI 등)를 연결할 수 있다. 처음에는 이걸 게이트웨이라고 불렀는데 요즘에는 애플리케이션 게이트웨이(서로다른 두 프로토콜을 연결하는 것)를 나타낼 때 사용한다.

다음은 두 네트워크를 연결한 모습이다. 이더넷과 토큰 링을 라우터로 연결 했다. 두 개의 네트워크를 라우터로 연결했을 뿐인데 두 네트워크의 모든 호스트가 의사소통을 할 수 있게 있게 되었다.

사용자 삽입 이미지
end system(양 쪽의 호스트)과 intermediate system(중간의 라우터)을 구분할 수 있다. 애플리케이션 계층과 전공 계층은 end-to-end 프로토콜이다. 이 두 계층은 오직 끝에 있는 시스템에서만 필요하다. 하지만 네트워크 계층은 hop-by-hop 프로토콜이고 모든 중간 지점 시스템에서 이것을 사용한다.

TCP/IP 프로토콜은 네트워크 계층에 IP 프로토콜로 신뢰성이 떨어지는 서비스를 제공한다. 그냥 옮기기만 한다. 반면 TCP는 신뢰할 수 있는 전송 계층을 제공한다. 즉..provides a reliable transport layer using the unreliable service of IP 그래서 타임아웃이라던가 수신 확인 등을 수행한다. 이 두 계층 간에는 확실하게 책임을 구분한다.

라우터는 정의에 따르면 두 개 이상의 네트워크 인터페이스 계층을 가지고 있다. 여러 인터페이스를 지닌 시스템을 multihomed라고 한다. 호스트는 multihomed가 될 수 있지만 블라브라.. 생략.

네트워크를 연결하는 또 다른 방법으로 브릿지(bridge)가 있다. 네트워크를 링크 계층에서 연결한다. 여러 개의 LAN을 마치 상위 계층의 단일 LAN으로 보이게 한다.

보통 브릿지보다 라우커를 많이 사용한다.