나의 길

네트워크(2) - Application, Transport Layer 본문

CS(Computer Science)/네트워크

네트워크(2) - Application, Transport Layer

MoonjuLee 2023. 3. 26. 21:23

 이전 포스팅에 이어 네트워크의 Application(App) 계층과 Transport(Tr) 계층을 살펴보도록 하겠습니다!

 

 App 계층에서의 전송단위는 message이고, Tr 계층에서의 전송 단위는 segment입니다. Tr 계층에서는 TCP, UDP와 상관없이 multiplexing과 demultiplexing을 지원합니다. 

 

multiplexing과 demultiplexing

 

 multiplexing은 App 계층에서 많은 Process들이 message를 내려보내주면 Tr 계층의 전송단위인 segment로 만들어 주는 것을 말합니다. 반대로 demultiplexing은 receiver가 segment를 받아 message를 받아야 하는 process(socket)들에게 알맞게 보내주는 것을 말합니다.

 

 demultiplexing을 할 때 알맞은 socket에 올려 주어야 하는데 segment의 HEADER에 정보를 통해 기능을 수행할 수 있습니다. HEADER는 필드를 가지고 있습니다.(부가적인 정보 : source port와 destinaton port 번호), DATA는 말 그대로 DATA! 하지만 부가적인 정보인 헤더의 필드를 알아야 그 역할이 무엇인지 알 수 있습니다. 우편배달부가 편지 안의 내용보다 앞쪽의 목적지를 보고 전달하시는 것처럼.. 모든 프로토콜이 HEADER가 중요!!

 

 demultiplexing을 할 때 UDP는 destinaton ip, port 두 가지만을 가지고 판단합니다. 

 

UDP의 demultiplexing

 

 반면 TCP의 demultiplexing은 source ip, port / destination ip, port를 가지고 판단합니다.

 

TCP의 demultiplexing

 

 현실에서 TCP demultiplexing의 예를 들면 티스토리에 접속한다면 서버(IP : C)는 1번과 같이 Client가 접속을 하면 소켓과 연결을 합니다. 그리고 message를 주고받습니다. 그리고 다른 4가지 중 하나라도 다른 것이 접속을 한다면 다른 소켓과 연결하여 요청과 응답을 주고받도록 합니다. 반면 위에서 본 UDP demultiplexing은 dest ip, port만을 판단하기 때문에 아무와 연결되어 있다는 뜻이 된다. 그래서 TCP는 connection oriented 하다고 말할 수 있습니다. 또한 TCP는 1, 2번과 같이 서버에서 Client별로 각기 다른 소켓을 연결해 주기 때문에 자원을 많이 소모합니다.

 

 위에서 편지를 배달하시는 배달부의 예를 말씀드렸습니다. 이번에는 UDP와 TCP의 HEADER를 살펴보도록 하겠습니다.

 

UDP segment format

 

 port는 위에서 살펴본 것처럼 multiplexing과 demultiplexing을 할 때, length는 길이, checksum은 서버의 Tr 계층에서 하위계층으로 이동되고 그 후 Client의 App까지 도달할 때까지 유실이나 오류 없이 전송되었는지를 표시하는 부분입니다. UDP가 TCP보다 기능이 없다고 생각되지만 그래도 demultiplexing(multiplexing)과 전송도중 에러 발생 유무를 체크해 주는 최소한의 기능을 수행해 주는 것을 볼 수 있습니다.(UDP를 통해서 정상적으로 전송받으면 에러가 없는 것이다.)

 

TCP segment format

 

 이 그림으로 TCP의 HEADER를 살펴볼 수 있습니다. 한눈에 봐도 UDP보다 필드들이 많은 것을 느끼실 겁니다. 위에도 말했듯이 HEADER의 필드가 무엇 때문에 존재하는지 아는 것이 프로토콜을 이해하는 방법입니다. 

 

 2번째 포스팅을 마치며 kocw의 대학 강의를 듣다 보니 뭔가 계속 파고들어야만 할 것 같은 느낌을 받았고 심지어 공부를 할 때 그렇게 학습하기도 했습니다. 하지만 훑어보는 정도로 하고 넘어가야 하는 것들이 있다고 포스팅을 하며 그리고 공부를 하며 느꼈습니다. 그래서 다음 포스팅부터는 최대한 도움이 되는 부분을 포스팅으로 이어서 만들고 이런 게 있구나 하며 넘어갈 수 있는 부분은 이런 게 있구나 하고 넘어가야겠다고 생각했습니다. 선별하는 것도 공부인듯하고.. 뭔가 혼자 생각하고 넘어갈 수도 있지만 한 명이라도 읽을 사람이 있다고 생각하고 공부하며 또 포스팅하며 느낀 생각을 적고 갑니다~~

 

 이 내용은 kocw의 이석복 교수님의 네트워크 강의를 듣고 공부한 내용입니다.

 

컴퓨터네트워크

인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다.

www.kocw.net

 

'CS(Computer Science) > 네트워크' 카테고리의 다른 글

HTTP!  (0) 2024.02.18
네트워크(3) - TCP  (2) 2023.04.23
네트워크(1) - 개요  (0) 2023.03.12
Comments