728x90

connection에는 두 가지 종류가 있다.

1) connectionless 비연결형 서비스

2) connection oriented service 연결 지향 하는 서비스 이다. 이 두개의 차이는 데이터 전송을 할 때 connectionless 하는 프로토콜은 연결설정 같은거를 하지 않고 바로 데이터 전송을 한다. 반면 connection oriented service 는 연결 설정을 하고 데이터 전송을 하고 연결 해제를 하는 3단계 절차를 거친다.

 

그래서 connectionless는 자신이 전송할 데이터가 있으면 바로 segment(packet)을 만들어서 바로 전송해버리는 것이다. 이런 방식을 취할 때 역다중화가 어떻게 처리되는지를 살펴보려고 한다.

 

소켓을 만들 때는 host-local port를 지정한다. 이것은 호스트 내부에서 사용하는 port넘버이다.  포트넘버는 주소역할을 하는 것이기 때문에 겹치면 안됨. 그리고 데이터그램을 UDP socket을 통해서 보낼 때 destination IP address와 destination port number를 꼭 써서 보내야 한다. 안그러면 목적지 호스트 까지 찾아갈 수 없고, destination 호스트에 도착을 해도 해당하는 소켓까지 전달이 되지 않기 때문이다. 

 

호스트가 UDP segment를 수신하게 되면 segment에 있는 destination port number를 체크하게 된다. 그리고 해당하는 UDP segment를 해당하는 포트 넘버를 가진 소켓에다가 전달하게 된다. 그래서 이걸 정리를 해보면 동일한 source IP address(소스 아이피 주소)나 source port number(소스 포트넘버)와는 다른 destination port number를 가진 IP datagram는 목적지에서 동일한 소켓으로 전달이 된다. 다시 얘기하면 동일한  destination port number를 갖지만 서로다른 source IP address(소스 아이피 주소)나 source port number(소스 포트넘버)를 갖는 IP datagram이라면 모두 다 destination에서 동일한 소켓으로 전달이 된다는 것이다. 즉 source IP address(소스 아이피 주소)나 source port number(소스 포트넘버)는 구분자가 아니라는 얘기이다. 여기서 구분자는 destination port number와 destination IP address가 된다. 그러면 같은 소켓의 destination에 전달이 된다. 

 

demultiplexing( 다중화)에서 구분자는 destination port number destination IP address이다. 두개만 같으면 동일한 소켓으로 전달이 되게 된다. (source IP address(소스 아이피 주소) source port number(소스 포트넘버)와는 상관없이)

+ Recent posts