본문 바로가기
IT/데이터베이스_네트워크

윤성우의 열혈 tcp/ip 소켓 프로그래밍 4장 연습문제 솔루션

by nutrient 2021. 5. 23.
728x90
728x170

 

 

답안 1.
TCP/IP의 4 계층은 다음과 같다.


   [그림 4-1: TCP/IP 프로토콜 스택]

TCP는 LINK계층↔IP계층↔TCP계층↔APPLICATION계층의 구조를 지니며, 
UDP는 LINK계층↔IP계층↔UDP계층↔APPLICATION계층의 구조를 지닌다.


답안 2.
LINK 계층은 LAN, WAN, MAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역으로, 물리적인 성격의 표준을 정의하고 있는 계층으로 정리할 수 있다. 반면 IP 계층은 인터넷을 통한 데이터 전송의 표준을 정의하고 있는 계층이다. 즉 IP 계층은 LINK 계층을 기반으로 구성되는 물리적인 네트워크를 기반으로 하는 데이터 전송의 표준을 담당한다. 


답안 3.
복잡한 TCP/IP 프로토콜을 계층화하면 문제해결을 전문화할 수 있으며, 계층화 된 영역을 표준화해서 개방형 시스템으로 발전시킬 수 있다. 실제로 TCP/IP는 개방형 시스템이기 때문에 각 계층별로 표준화가 되어있고, 이 표준을 근거로 인터넷 망이 구성되어 있다. 따라서 계층별 표준을 따르는 하드웨어 및 소프트웨어의 상호 대체가 가능하며, 이러한 표준화는 TCP/IP가 이렇게 발전할 수 있는 근거가 되었다. 

 


답안 4.
서버가 서버 소켓(리스닝 소켓)을 대상으로 listen 함수를 호출한 이후부터 연결요청이 가능하다. 


답안 5.
연결요청 대기 큐가 생성되는 시점은 listen 함수가 호출되는 시점이다. 그리고 이때 생성되는 연결요청 대기 큐는 클라이언트의 연결요청 정보가 저장되는 공간이다. accept 함수가 호출되면, 바로 이 공간에 저장된 연결요청 정보를 참조하여 해당 클라이언트와의 연결을 구성하게 된다. 


답안 6.
클라이언트는 연결을 요청하는 프로그램이지 연결을 받아들이는 프로그램이 아니다. 때문에 서버의 주소정보가 더 중요한 요소가 된다. 따라서 bind 함수호출을 통해서 명시적으로 주소정보를 할당할 필요는 없다. 그러나 서버와의 통신을 위해서는 소켓에 자신의 주소정보가 할당되어야 하기 때문에 서버로의 연결요청을 시도하는 connect 함수가 호출될 때, 인자로 전달된 소켓에 자동으로 IP주소와 PORT번호가 할당된다. 





728x90
그리드형

댓글