1. 소켓을 작성한다
1) 프로토콜 스택의 내부 구성

- TCP/IP 소프트웨어는 계층 구조이고, 위의 계층이 아래의 계층에 작업을 의뢰한다.
- 맨 위에는 네트워크 애플리케이션 위치
- 브라우저, 메일러, 웹 서버, 메일 서버 등의 프로그램이 여기에 해당
- 애플리케이션 아래에 Socket 라이브러리
- 안에 리졸버 내장 되어있고 DNS 서버 조회 동작 실행
- 그 아래부터 OS 내부이고 프로토콜 스택 위치
-
TCP : 브라우저나 메일 등의 일반적인 애플리케이션은 TCP 사용하여 데이터 송수신
-
UDP : DNS 서버에 대한 조회 등에서 짧은 제어용 데이터를 송수신 하는 경우 UDP 사용
-
IP 프로토콜 - 패킷 송수신 동작 제어
*패킷? 인터넷에서 데이터를 운반할 때 데이터를 작게 나누어 패킷이라는 형태로 운반
- ICMP - 패킷을 운반할 때 발생하는 오류 통지, 제어용 메시지 통지
- ARP - IP 주소에 대응하는 이더넷의 MAC 주소 조사
- IP 아래에 LAN 드라이버 위치
- 가장 아래 LAN 드라이버
- LAN 어댑터가 실제 송수신 동작, 케이블에게 신호를 송수신 하는 동작 실행
2) 소켓의 실체는 통신 제어용 제어 정보
- 프로토콜 스택은 내부에 제어 정보를 기록하는 메모리 영역을 가지고 있고 여기에 통신 동작을 제어하기 위한 제어 정보를 기록
- 프로토콜 스택은 소켓에 기록된 제어 정보를 참조하면서 움직인다
- 제어 정보 예시
- 상대측의 IP 주소나 포트 번호
- 응답이 돌아오는지 여부 / 송신 동작 후의 경과 시간 등

- 한 행이 하나의 소켓에 해당
- 다섯번 째 행은 PID 가 1720인 프로그램이 118.42.2.212 라는 IP 주소를 할당한 LAN 어댑터를 사용하여 222.233.53.144의 IP 주소를 할당한 상대와 통신하고 있음
*PID? Process ID의 약자, 각 프로그램을 식별하기 위해 OS가 할당하는 번호
- 자신은 2477 상대는 80 이라는 포트 번호를 사용하는 것도 알고 있음