Process와 Process 끼리의 논리적인 연결을 제공하는 Transport layer에 대해 알아보자
4계층인 transport layer는 host간의 process간의 논리적인 연결을 제공한다.
아랫 계층인 network layer는 ip를 사용하여 host의 device끼리의 연결을 제공한다.
Device끼리의 연결을 제공하여도, 해당 Device의 어느 곳으로 data를 전송할 지를 결정해야 한다. 마치, 현실 세계에서 택배를 보낼 때에도 받을 주소(IP)와 받을 사람(수취인)을 같이 적듯이 말이다. 전송 계층은 port 번호를 통해 전송 받는 device내에 어떠한 process에게 data를 전송할 것인지 결정한다.
5계층인 app에서 전송하고자 하는 data를 전송 계층에 전달하면, 전송 계층은 해당 data를 segment(익숙한 packet으로 생각해도 무방하다)로 잘게 분해하여 3계층 network layer로 보낸다.
전송 계층에는 크게 2가지 protocol이 존재한다. UDP와 TCP이다.
TCP
UDP
두 protocol 모두 보장 불가능한 사항
TCP의 경우 신뢰성과 순서가 보장되는 만큼 느리다는 단점이 존재한다.
UDP는 신뢰성과 순서를 포기한 대신에 빠르다는 장점이 존재한다.
TCP프로토콜은 연결 지향적이다, 이 말인 즉슨 , process와 process가 연결된다는 소리이다. 즉, receiver의 입장에서는 sender의 segment를 보낸 sender의 ip와 port번호가 필요하다는 것이다. 반면에 UDP는 그냥 받으면 땡이다. 연결을 굳이 설정하지 않기때문에 이 segment가 어디서 왔는가를 따지지 않는다.
Demultiplexing : 받은 data를 알맞은 port로 전달하는 것!
4계층의 두 가지 protocol에 대해 대~충 알아보았다.
앞으로 두 편에 걸쳐서 tcp,udp에 대해 더욱 자세히 알아보겠다.
사실 배울때만해도 무지성으로 암기하고 넘어갔는데 다시 복습할 겸 천천히 복기하니
정말 공부에 큰 도움이 되는 것 같다.