앞서 소켓의 생성 및 프로토콜 체계에 대해 공부를 했다면 이번에는 소켓에 IP와 PORT번호를 할당하는 방법을 공부할 것이다. IP는 크게 네트워크 ID와 호스트 ID로 나눠지고, 이 형태에 따라 A,B,C,D,E 클래스로 분류된다.
내 컴퓨터의 경우 IP의 번호가 210.119.12.94로 192~223 사이에 있기 때문에 C클래스에 해당한다.그래서
201.119.12까지가 네트워크 ID에 속하고 94가 호스트 ID이다.
그리고 포트의 경우에는 IP를 통해 원하는 컴퓨터를 찾았다면 데이터를 수신해야되는 최종 목적지인 응용프로그램에까지 데이터를 전송하기 위해서 필요한 번호이다. 그래서 포트 번호는 하나의 운영체제 내에서 소켓을 구분하는 목적으로 사용되기 때문에 하나의 운영체제 내에서 동일한 포트 번호를 둘 이상 할당할 수 없다. 포트번호은 16비트로 표현되기 때문에 2의 16승인 0~65535이하의 범위내에서 번호를 부여할 수 있다. 하지만 0~1023번까지는 특정 프로그램이 할당되어있기 때문에 이를 제외한 번호로 할당해야한다. 그리고 TCP 소켓과 UDP 소켓은 포트번호를 공유하지 않기 때문에 중복되어도 상관없다.
내 컴퓨터 안의 IP와 포트번호가 할당된 것을 보기 위해서는 아래와 같은 코드를 치면 된다.
sockaddr은 주소정보가 담기는 구조체로써 bind 함수에 전달하는 용도로 사용된다. bind 함수는 뒤에서 더 자세하게 다루도록 하겠다.
'TCP & IP' 카테고리의 다른 글
3-3 문자열 정보를 정수로 변환하는 방법 (0) | 2021.10.06 |
---|---|
3-2 바이트 순서와 네트워크 바이트 순서 (0) | 2021.10.06 |
2-2 Tcp client 실행 (0) | 2021.10.06 |
2-1 프로토콜이란? (0) | 2021.10.06 |
1-3 윈도우 기반 구현 (0) | 2021.10.06 |