Network Core and Protocol Layers
Network Core and Protocol Layers
프로토콜(규약)이란 순서, 형식, action을 말한다. Layering은 프로토콜의 그룹이라고 할 수 있다. 네트워크는 매우 복잡하므로, 하나의 프로토콜로는 해결할 수 없다. 각 계층으로 구별하고 계층은 계층 내부의 일을 집중하여 서로 관여하지 않는다. 유사한 기능을 제공하는 프로토콜의 그룹이다.
Packet-switching
store and forward
물 흐르듯이가 아닌, 라우터에서 잠시 멈추고 적절한 길을 알려준다. 나가는 방향이 하나가 아니라 mesh이므로 어디로 나갈지 판단해야 한다.
queueing delay, loss
Two key network-core functions
1. Forwarding : 헤더를 달고 다니면서 라우터가 확인하고 판단한다. forwarding table을 참조하여 다음 라우터로 넘겨준다.
2. Routing : 어떤 네트워크가 존재하는지 조사하고 어디로 가야하는지(최선) 결정한다. forwarding table을 유지하든지 갱신하든지 결정.
Circuit switching
회로를 미리 준비하여 물 흐르듯이 가도록 한다. 자원을 공유하지 않고, 방해받지 않는다. ex)전화
FDM - ex) 목소리를 디지털 신호로 바꿀때. 서로 신호가 섞이지 않게 주파수를 일정하게 할당한다.
TDM - 일정하게 시간을 잘라서 확보한다. 짧은 시간이지만 일정하다.
Virtual circuit switching
논리적으로 길을 미리 만들어주는 것. Data를 보내기 전 준비하라고 signal을 보낸다. 이 방식의 경우, 누가 존재하는 지 알 필요가 없다. 데이터 전송이 이루어지기전 table을 준비하여 VC id가 붙은 packet들을 table에 따라 해당 interface로 전송한다. 전송할때만 table entry 정보를 가지고 있으면 된다.
Datagram
현재 방식으로, signal을 보낼 필요없이 그냥 보내는 방식이다. 대신, 구체적으로 목적지 주소를 적어서 보내야 한다. virtual circuit switching과 다른점은 미리 준비할 필요가 없다는 점이다. table을 만들어놔서 이것에 근거해 나갈 길을 결정한다. 어느 입구인지는 관심이 없고, 목적지만 알면 된다. 하지만 라우터끼리 정보를 주고 받으며 모든 가능한 네트워크를 다 알아야 한다.
Internet protocol stack
Application : supporting network applications - end user가 사용하는 서비스를 개발하기 위해 어떤식으로 메세지를 주고받는 지. FTP, SMTP, HTTP, DNS, POP, BitTorrent, DHT
Transport : process-process data transfer - 어떤 프로그램에서 어떤 프로그램으로 가는지. server와 client가 정확하게 데이터를 주고 받았는 지 확인함. TCP, UDP , SCTP, DCCP
Network : routing of datagrams from source to destination - 패킷스위칭을 한다. 어떤 라우터를 거쳐야 빠른지. Global한 주소가 중요하다.(식별해주는) IP, routing protocols ICMP, IGMP, PIM-SM, DVMRP, RIP, OSPF, BGP, IPv4, IPv6, DHCP
Link : data transfer between neighboring network elements - 네트워크 안에 각각 연결 돼있는 지. 장치간에 두개 연결이 잘 되어있는지 확인. Ethernet, 802.11 (WiFi), PPP, ARP
Physical : bits "on the wire" - 링크를 따라 어떤 형태의 신호로 바뀌어 배달되는지 확인.
ISO/OSI reference model에선 7계층으로 나뉜다. application layer 아래에 있는 presentation의 경우, 서로 다른 기계에서 데이터를 표현하는 법이 다르므로 중간 표준을 만드는 것이다. 그 아래의 session은 데이터를 보낼 때 양 측 준비 + 연결설정 + 시스템 fail 시 그 상태를 어떻게 회복할 것인지.
각 계층은 하위 layer들이 하는 일을 믿고 보내는 것이다. stack이 쌓여있는 순서의 이유는 바로 하위 layer가 하는 기능이 다 된다고 생각하기 때문이다.