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으로 보이게 한다.
보통 브릿지보다 라우커를 많이 사용한다.