공부용 블로그

protocol_3주차_TCP와 UDP 본문

설계/Protocol

protocol_3주차_TCP와 UDP

tomato212 2018. 6. 11. 21:45

1. TCP(전송 제어 프로토콜. Transmission Control Protocol)


두 호스트가 연결을 설정하고 데이터 스트림을 교환함. 두개의 최종 프로세스간의 안정적인 통신을 담당하는 연결지향 프로토콜.

연결지향이란 실제로 데이터를 전송하기 전에 두 끝점 사이에 연결을 열어야 한다는 의미이다.


- TCP는 데이터 전달을 보장해준다. (전송실패시 재전송)

- 패킷이 전송된 순서와 동일한 순서로 전달되도록 보장해준다

- 전송되는 단위는 스트림





 TCP 동작순서


1. Enter website in browser




2. DNS client creates a message


HTTP Client는 입력한 URL로부터 HTML 파일을 요청하는 메세지를 만든다. 

그 메세지에는 IP주소를 적어야 하는데 http client는 가지고 있지 않기 때문에 DNS 클라이언트에게 IP주소를 달라고 한다.

DNS 클라이언트는 전송계층(Transport Layer)에 URL에 대한 IP주소를 요청하는 메세지를 보낸다.






3. Create a datagram

전송계층은 UDP Header에 메세지(source와 목적지 port가 들어있는)를 추가한다.

포트 번호를 만들고 그것을 IP주소를 요청하는 DNS 프로세스에 할당한다.

"well-known" DNS server port number 는 목적지 port로 사용된다.

그리고나서 생성된 데이터그램은 네트워크 계층으로 전송된다.









4. Create a packet


네트워크 계층은 원본 및 대상 IP 주소가 포함 된 IP 헤더를 데이터 그램에 추가합니다.

자체 IP 주소를 원본으로, DNS 서버 IP 주소를 대상으로 추가합니다. PC가 로컬 IP 주소를 할당했을 때 라우터가 PC를 제공했기 때문에 PC는 DNS 서버의 IP 주소를 알고 있습니다. 결과 패킷은 링크 계층으로 전송됩니다 .




------ 나머지 작동순서 사이트 참고









'설계 > Protocol' 카테고리의 다른 글

protocol_4주차_MPD와 m3u8파일은 왜 만들었을까?  (0) 2018.06.25
protocol_3주차_MPEG DASH  (0) 2018.06.12
protocol_2주차(3) RTMP&RTSP  (0) 2018.06.09
protocol_2주차(2) HLS(apple)  (0) 2018.06.08
protocol_2주차(1) WebRTC  (0) 2018.06.08