C++ 소켓 프로그래밍에 대해 몇 가지 질문이 있습니다. 내가 깊이 묻는 방식이 잘못 되었다면, 깊은 것을 파헤 치고 올바른 것을 도우십시오.socket() 및 bind()는 어떻게 작동합니까?
- OS 수준의 각 포트마다 하나의 파일 설명자가 있습니까?
- 여러 포트가 동일한 네트워크 인터페이스를 사용하는 방법은 무엇입니까? 프로세서에서 스레드가 처럼 전환됩니까? 따라서 사용 포트 수가 증가하면 특정 포트에 대해 지연된 데이터가 일 수 있습니까?
- 소켓을 만들 때 OS 레벨은 어떻게됩니까? IO 파일 디스크립터에 대한 참조를 작성합니까?
- 그러면 bind() 호출이 OS 레벨에서 어떻게됩니까? 소켓과 NIC 주소를 어떻게 연결합니까?
- 재사용 가능한 소켓을 사용하면 어떻게됩니까? 여러 소켓을 한 포트에 바인딩하는 방법은 무엇입니까? 하나의 포트에서 스레드와 같은 스위치를 사용합니까?
- 특정 주소 또는 포트에 bind()없이 보내거나받을 때? 논리 OS가 어떻게 그리고 무엇을 선택하여 주소와 포트를 선택합니까?
여기에는이 형식에 대한 광범위한 내용이있을 수 있습니다. 소켓에 대한 구현 세부 사항을 묻는 중입니다. 소켓에 대한 세부 사항은 시스템마다 다를 수 있습니다. 사용하는 프로토콜에서 * port *가 실제로 무엇인지 이해하기 위해 네트워킹 설명서를 선택하는 것이 좋습니다. –
@ David Rodríguez - dribeas : Linux 또는 Unix 환경에 대한 세부 정보를 찾고 있습니다. 온라인으로 읽은 참고 서적을 몇 권 읽었습니다. 그러나 그 책들은 너무 지저분합니다. 이 시스템이 어떻게 작동하는지 간단한 생각이 필요합니다. 나는 소켓 프로그래밍을하고있는 사람들이 그 옳은 것이 무엇인지 생각해야한다고 생각한다. –
이 시스템들은 복잡하기 때문에 "리눅스 네트워킹이 어떻게 작동하는지 간단하게"생각하지 않을 것입니다. –