TCP와 UDP에 대한 이해
데이터 전송방법에 따른 인터넷 프로토콜 기반 socket
- TCP socket: 연결을 지향하므로 '스트림 기반 socket'이라고 함
- TCP/IP 프로토콜 스택: 인터넷 기반 효율적 데이터 송수신을 계층화

- 프로토콜을 계층화함으로써 표준화 작업을 통해 '개방형 시스템'을 설계
(모든 라우터 제조사들이 IP 계층의 표준에 맞춰 라우터 제작, 모든 랜카드 제조사가 LINK 계층의 표준에 따름)
- LINK 계층
- 물리적인 영역의 표준화에 대한 결과
- LAN, WAN, MAN과 같은 네트워크 표준과 관련된 프로토콜을 정의하는 영역
(두 호스트가 인터넷을 통해 데이터를 주소받기위한 물리적인 연결에 대한 표준)
- IP 계층
- 목적지로 데이터를 전송하기 위해 중간에 경로를 거치기 위한 프로토콜
- 비 연결지행적이며 신뢰할 수 없는 프로토콜
(데이터를 전송할 때마다 거쳐야 할 일정하지 않은 경로를 선택해 주며 전송 도중 경로 상에 문제가 생겨 다른 경로를 선택해 주는 과정에서 데이터가 손실되거나 오류가 발생하지만 오류발생에 대한 대비가 되어있지 않음)
- TCP/UDP 계층
- IP 계층에서 알려준 경로정보를 바탕으로 데이터의 실제 송수신을 담당
- IP의 상위계층에서 호스트 대 호스트의 데이터 송수신 방식을 약속하는 것
- 전송계층
- UDP가 TCP에 비해 상대적으로 간단
- TCP: 신뢰성있는 데이터의 전송 담당, 데이터를 보낼 때 기반이 되는 프로토콜은 IP
: IP는 전송의 순서를 신뢰할 수 없으며 데이터가 손상된 상태로 전송될 수 있지만 TCP 프로토콜이 추가되면 데이터를 주고받음, 분실된 데이터 확인을 하여 데이터의 전송을 신뢰할 수 있음

- APPLICATION 계층
- socket을 이용하여 프로그램의 성격에 따른 클라이언트와 서버간의 데이터 송수신에 대한 규약