자, 나머지 개념들을 정리하기 전에, 먼저 Socket이라는 개념을 살펴보고 가자.
내가 1.1 개요에서 transport layor는 application의 메세지를 전송해준다 그랬잖아.
그러면 application에서 메세지를 전송해 달라고 요청을 해야겠지?
카카오톡 보낼 때 생각해 보자. 너네 카카오톡 전송할 때, 그냥 전송 버튼만 누르지,
transport layor한테 전달하고 막 그런거 안하잖아? 왜 그러냐면
transport layor는 기본적으로 운영체제에서 구현이 되어있어.
applcation과 운영체제(OS)는 분리가 되어있어. 이 분리되어 있는 둘 사이를 연결시켜주는게
바로 Socket이야. 쉽게 말하면 일종의 연결 통로야.
자, 또 설명해야 할 게 있는데,
여기서 멀티플렉서(MUX)와 디멀티플렉서(DEMUX)의 개념이 나와.
MUX는 여러 개의 아웃풋을 모아서 한 곳으로 내보내는 개념이고,
DEMUX는 한 곳으로 들어온 인풋들을 적절한곳으로 분배할때 사용해.
왜 필요하냐면, 하나의 컴퓨터엔 여러가지 Application이 동작하고 있고, 그에 따라서 많은 프로세스들이 동작하고 있어,
그런데, 이 많은 프로세스들이 운영체제에 구현되어있는 단 하나의 transport layor를 이용하는거야.
다시 말하지만 이건 하나밖에 없거든.
그래서 MUX가 필요해. MUX는 여러가지 Application들이 메세지를 보내달라고 요청을 하면 그게 한 곳으로 모여, 모여서 서로 다른 end system으로 분배되어서 가는거야.
그러면 당연히 반대로, 받는 쪽 입장에서는 서로 다른 application들을 향해서 메세지가 막 날아올텐데, 이것들이 운영체제에 구현되어 있는 하나의 통로를 따라서 온 다음 마지막에 분배가 되는거거든. 이렇게 따로따로 분배해서 전달 해 주는게 DEMUX야.
정리하자면,
여러개를 하나로 모아서 보내는게 MUX
하나로 오는 걸 여러개로 다시 분배하는게 DEMUX야.
대충 개념만 알고 넘어가자.
DEMUX는 분배해서 서로 다른 App들한테 전달해 주는 거라고 했지?
그렇다면 당연히, 누가 받아야 하는가에 대한 정보가 중요해
이 정보는 누가 관리할까? 당연히 Transport layor에서 관리 하는거야.
이 정보는 IP 주소와, port Number을 사용해서 보내는 쪽과 받는 쪽을 식별하는데,
먼저, IP 주소는 transport layor 다음 계층인 Network 계층에서 신경 써 주는 일이야.
무슨 말이냐면 "저기 수원에있는 어느 컴퓨터까지 가" 까지는 Network에서 해 줘.
이어서 그 컴퓨터에서 동작하고 있는 어떤 프로세스한테 줘야 하는지 식별하는게 Port number야.
자. 다시 한번 말 하지만, TCP에서 중요하게 생각하는건 두가지야
1. 송,수신측 입장에서는 내가 보낸 데이터가 상대방에게 잘 가는것
2. 각각이 보낸 데이터들로 인해서 네트워크 환경이 고통받으면 안되는것.
이렇게야. 두 번째는 왜 그러냐면 네트워크 환경이 막 붐비면 손실이 일어날 가능성이 있거든
쉽게 생각하면, 사람이 막 붐비고 복잡한 곳에서 미아들이 생기잖아? 마찬가지야 네트워크도.
'학교 수업 > 컴퓨터 네트워크' 카테고리의 다른 글
Transport layor - 4. TCP Congestion control (0) | 2020.05.09 |
---|---|
Transport layor - 3. TCP fast retransmit (0) | 2020.05.08 |
Transport layor - 2.1 Pipelining, Go Back N, Selective Repeat (0) | 2020.05.07 |
Transport layor - 1.3 개요 // 컴퓨터 네트워크 (0) | 2020.05.06 |
Transport layor - 1.1 개요 // 컴퓨터 네트워크 (0) | 2020.05.04 |
댓글