TCP ( Transmission Control Protocal )
- 연결형 서비스로 신뢰성을 보장한다.(가상회선방식이용)
- 신뢰성 없는 인터넷을 통해 종단간에 신뢰성 있는 바이트스트림으로 전송을 하도록 설계 하였다.
- 스트림 전송으로 전송 데이터의 크기 또한 무제한이다.
- 같은 경로로 간다.
- 예) 파일 전송.
- 송신자와 수신자 모두가 소켓이라고 부르는 종단점을 생성함으로써 이루어진다.
- 흐름제어,혼잡제어의 기능이 있다.
- 3-Way-HandShake를 통해 연결 설정이 이루어 진다. | 4-way를 통해 연결 해제가 이루어진다.
- 전이중(full-duplex), 점대점(point to point) 방식이다.
- 전이중이란
- 전송이 양방향으로 동시에 일어날 수 있음을 의미한다.
- 점대점이란
- 각 연결이 정확히 2개의 종단점을 가지고 있음을 의미한다.
- 전이중이란
- TCP는 멀티캐스팅(1:N)이나 브로드캐스팅(1:ALL)을 지원하지 않는다.
※
패킷
데이터를 여러 개의 조각들로 나누어 전송을 하는데, 이 조각을 패킷이라고 불리운다.
TCP패킷 추적은 어떻게 할까?
예를 들어 1,2,3번 사람이 서울에서 출발하여 부산으로 간다고 가정할 때. ABC가 순차적으로 가는 상황에서 B가 길을 잘못 들어서 분실되었다고 할 때, A,C만 보고 다왔다고 착각할 수 있기 때문에, 각 패킷에 1,2,3이라는 번호를 부여하여 패킷의 분실 확인을 한다. 즉 목적지에서 재조립을 한다.
TCP의 흐름
socket : 소켓을 생성.
bind : IP 주소와 포트 번호를 생성한 소켓에 결합.
listen : 클라이언트로부터 연결 요청이 수신되는지 예의 주시한다.
accept : 요청이 수신되면 받아들이고 데이터 통신을 위한 소켓을 생성.
UDP ( User Datagrame Protocol )
- 비연결형 프로토콜이다.(데이터그램 방식 사용)
- 각 패킷은 서로 다른 경로로 전송된다.
- 각각의 패킷은 독립적인 관계를 지니게 된다.
- 데이터그램(메시지)단위로 전송되며 그 크기는 65535바이트로, 크기가 초과하면 잘라서 보낸다.
- UDP 헤더의 CheckSum필드를 통해 최소한의 오류만 검출한다.
- UDP는 흐름제어,오류제어, 또는 손상된 세그먼트의 수신에 대한 재전송을 하지 않는다.
- 소켓 대신 IP를 기반으로 데이터를 전송한다.
- 서버와 클라이언트는 1:1, 1:N, N:M 등으로 연결될 수 있다.
- 종종 클라이언트는 서버로 짧은 요청을 보내고 짧은 응답을 기대한다.
- 만약 요청 또는 응답이 손실된다면 클라이언트는 time out 이 되고 다시 시도할 수 있으면 된다.
- 코드가 간단할 뿐만 아니라 TCP처럼 초기연결설정에서 요구되는 프로토콜보다 적은 메시지가 요구된다.
- 서버 소켓과 클라이언트 소켓의 구분이 없다.
- UDP를 사용한 것은 DNS가 있다.
- 어떤 호스트 네임의 IP 주소를 찾을 필요가 있는 프로그램은 DNS 서버로 호스트 네임을 포함한 UDP패킷을 보낸다.
- 이 서버는 호스트의 IP 주소를 포함한 UDP패킷으로 응답한다.
- 사전 연결 설정이 필요하지 않으며 그 후 에 해제 설정 또한 필요가 없다.
UDP의 흐름
요약 테이블
'CS > Network' 카테고리의 다른 글
DNS Round Robin (0) | 2021.05.14 |
---|---|
HTTP와 HTTPS (0) | 2021.05.11 |
TCP - handShake (0) | 2021.05.04 |
HTTP의 GET과 POST (0) | 2021.05.03 |
[CS]_Network 핵심 요약 정리 (0) | 2021.04.10 |
댓글