-개발자 관점에서의 PORT번호

port번호는  개발자 관점에서는 process식별자라고 했다. process는 크롬이라던지 엣지라던지 뭐언가 작동될 때 생성되며 kernel층의 tcp에 접근할 수 있도록 user모드 Application에 본질이 file인 interface가 제공되는데 kernel(TCP)를 추상화 한 것이기 때문에 file이라 부르지 않고 Socket이라고 부른다. 

아무튼 tcp/ip에 있는 port번호는 16bit로 이루어져 있어 0~65535까지 나타날 수 있다.(하지만 0하고 655는 안쓴다고함) 

아무튼 process"식별자"라고 했으니 엣지나 크롬이든 여러 프로세스가 생성된다면 port번호는 중복될 수 없다 . 고유하다 식별자기 때문이다. 

 

어떤 데이터가(Packet단위) H/W부터 들어온다면 L4층에 멈춰 Port번호를 보고 어느 프로세스로 갈지 정한다. 

 

-switch, switching

Network 즉 Internet은 Router(L3스위치)들의 집합체라고 했다  이런 Nerwork를 고속도로로 보고 출발지에 있는 자동차를 Packet단위의 데이터라고 보고 최종 목적지가 있다고하자, 그리고 길마다 있는 교차로와 각 방향을 알려주는 이정표가 존재한다. 그러면 데이터는 교차로(Router or switch)에서 data는 최적의 경로를 찾기 위해 라우팅 테이블이라는 이정표를 보고 경로 or interface를 선택한다.(switching) 이정표는 경로를 선택하게 되는 근거로 Routing table는 성능향상에 매우 중요하다., !!  아 참고로 router들은 독립적이기보단 서로간 통신을 하며 어떠한 portocol을 기반으로 가장 효율적이 경로로 선택할지 상의한다. 

 

*router=L3switch*

여기서 나온 Packet이 정확히 무엇인가>?

일단 app단에서 Socket수준의 데이터를 보자면 예를들어 한컴 Process에서 몇천줄을 쓰던 File의 크기는 늘어난다. App단에서는 Socket, file수준에서의 Stream이라고 불린다. Stream은 OS가 받혀주는데까지 커진다. 프로그램을 어떻게 설계했냐에 따라 무제한 길어진다.  유튜브 스티리밍 방송 예를들면 내가키고 내가 끄면 꺼지는 제한없는 ~ 요런 느낌?

 

자 이제 kernel모드로 가서 Tcp도 Segment라는 단위가 존재한다. 그리고 Packet은 IP수준 그리고 Driver을 통해 H/W를 왔다갔다하는 데이터의 단위를 Frame이라고 한다. 

 

process에서는 Socket, File에다가 Stream을 write한다 자 그럼 tcp단에서의 segment단위가 되기 위해서는 무진장 긴 Stream의 세그먼트화(Segmentation)이 이루어져야 한다. 쉽게 말하면 긴 Stream을 "일정 길이" 로 자른다. 

이 일정길이를 MSS(Max segment size)라고 한다. 근데 또 이 MSS는 패킷에 영향을 받는데 패킷의 최대크기는 MTU(Max transport Unit)에 영향을 받는다. MTU는 보통 1500Byte임,, 그럼 만약 2MB의 StreamFile이 있다면 Packet는 1000 몇개정도 생기는거임 ㅋ 그럼 또 이 Packet은 Frame으로 encapsulation 된다. 이건 나중에 .. 일단 이거 다 외우기 .

 

1. Socket수준의 Stream Data(길이 알 수 없음) -> Tcp수준의 Segment Data(Stream을 일정 길이로 자른것*segmentation) -> IP수준의 Packet Data(MTU기준으로 Segmentaion한 것 ) -> driver에서 Nic수준에서의 Data(Frame Packet을 encapsulation 한 것)

'3-2 > Computer Network' 카테고리의 다른 글

ARP 프로토콜  (0) 2022.10.06
[컴퓨터 네트워크] Packet Switching  (0) 2022.09.13
인터페이스 스위칭에 대해서..  (0) 2022.09.12
IP 주소와 NetMask  (0) 2022.09.07
[널널한 개발자 네트워크 강의] 1~3 복습  (0) 2022.09.06

+ Recent posts