저의 velog에 작성된 글은 모두 저의 주관적인 생각 및 이해를 바탕으로 작성된 글이므로
정확하지 않은 내용을 있을 수 있음을 알립니다.
[교재] Computer Networking : A Top-Down Approach 8th
오늘은 Protocol layer가 뭐고 어떻게 작동하는지 알아보겠습니다.
Protocol layer는 말 그대로 층층이 쌓는다는 것인데, 왜 이 방법을 사용할까요? 그 이유는 Network이 너무 복잡하기 떄문입니다. 저희가 지난 5차례 공부한 것도 복잡한데, 실질적으로 저희가 공부한 것은 '새발의 피' 입니다..
layering은 우리의 생활에도 흔히 쓰이고 있습니다. 다음 예시를 보시죠.
우리는 비행기를 탈 때 티켓을 사고, 짐을 넣고, 게이트를 통해 탑승하고, 이륙합니다. 돌아올 때는 이 과정을 거꾸로 진행하죠. 따라서 이 예시를 이렇게 layering할 수 있습니다.
이렇게 하면 복잡한 system을 조금 더 간단하게 볼 수 있습니다. 다만 layering이 항상 좋은 것 많은 아닙니다. layer가 많으면 function call을 통해 layer를 부르게 되는데, 이것은 컴퓨터에게 더 많은 일을 시키는 것이므로 performance가 떨어질 것 입니다. 더군다나 규모가 작거나 별 것 아닌 일을 복잡하게 layering 하면 더 안좋겠죠?!
Protocol layer는 총 5개의 layer로 이루어져있습니다. 하나하나 알아보도록 하죠.
application layer
요청 사항을 메세지화 하여 요청하는 layer, 다음 layer인 transpost layer에 보내달라는 요청
메세지를 전달
transport layer
process와 process가 통신하여 post를 확인하는 layer, 다음 layer인 network layer에 '도착 주소 보낼테니 길 찾아줘!'라는 메세지를 전달한다.
network layer
transport layer로부터 받은 도착 주소를 보고 host와 host 사이를 routing한다.
routing 후 application에서 작성된 메세지를 보내기 위해 path 정보를 link layer로 전달한다.
link layer
지금까지 받은 데이터를 보내기 위해 data를 wire에 올릴 필요가 있다. 다음 layer인
physical layer로 wire에 올려달라는 메세지를 보낸다.
physical layer
link layer에서 받은 요청을 수행하기 위해 data를 wire에 올린다.
실제로 작동하는 방식을 나타낸 그림이다. 이렇게 보면 이해가 어려울 것이기 때문에 부분부분 나눠서 알아보자.
source에서의 상황이다. 위에서 아래 방향으로 진행된다.
다음 상황은 source에서 destinaiton으로 가는 중간에 switch와 router의 상황을 보여준다. 처리 순서는 위의 사진을 확인하길 바란다. switch는 길을 찾아주는 역할을 하지 않기 때문에 network layer를 갖지 않는다. router로 이동한 packet은 정상적으로 온 것을 확인 및 기존에 있던 destination 주소를 지우고 최종 목적지까지의 path를 routing한다.
destination에서의 상황이다. 방향은 아래에서 위 방향임을 주의하자. 전반적으로 받은 packet들을 하나씩 떼고 application layer에서 메세지를 확인하는 과정이다.
이렇게 해서 조금은 헷갈리 수 있는 Protocol layer에 대해서 알아봤다. 설명이 부족했을지 모르겠다. 나도 공부를 하면서 내가 이해한게 맞나 싶은 적이 많았지만, 이해한대로 최대한 이 파트를 처음 접한 사람이 이해할 수 있게 작성했다. Protocol layer를 마지막으로 Chapter 1은 끝났다!! 이제 다음 장에서 Web, HTTP, DNS 등 다양한 Application layer에서 이뤄지는 다양한 일들에 대해 소개해볼 것이다. 오늘도 수고 많았습니다 :)