본문 바로가기

Study

TCP와 UDP

[TCP/IP 프로토콜 스택]

이미지 출처: http://blog.naver.com/rnjstjdwo14/40126205254


<TCP/IP 프로토콜 스택>

1. Link 계층

- 두 호스트가 인터넷을 연결해 데이터를 주고 받기 위해 필요한 물리적인 장치

(호스트: 인터넷에 연결되어 있고, 개별적인 IP 주소를 갖는 시스템(PC). 

호스트는 패킷의 원천지이기도 목적지이기도 하며, 서버이기도 클라이언트이기도 하다.)

- LAN, WAN, MAN 등

2. IP 계층

- IP(Internet Protocol)을 이용하여 데이터를 목적지까지 전송한다. → 비연결형 서비스이며, 신뢰할 수 없는 프로토콜.

- 데이터를 보낼 때마다 거쳐갈 경로를 선택하며, 그 경로는 일정하지 않음. 문제 발생 시 다른 경로를 선택해 데이터를 전송함.

- 데이터의 전송순서나 오류를 신경쓰지 않는다.

- 하나의 패킷이 전송되는 과정에만 중심을 두고 설계됨.

3. Transport 계층

- IP를 기반으로 호스트 대 호스트가 어떤 방식으로 데이터를 주고받을 지 정의하는 계층.

- 그 방식에 따라 TCP와 UDP로 나뉜다.

4. Application 계층

- 위 세 개의 계층에 대한 작업을 소켓이 해주는데, 이 소켓을 이용하여 무엇인가를 만드는 계층.

[연결형, 비연결형 서비스]

이미지 출처: http://terms.naver.com/entry.nhn?docId=2271885&cid=51207&categoryId=51207


<TCP>

- Transmission Control Protocol

- 연결형 서비스를 지원한다.

- 데이터 전송 전에 연결을 미리 설정하여 송신하는 방식.

- 데이터가 모두 동일한 경로를 이용하기 때문에 보내는 순서대로 목적지에 도착한다.

- 신뢰성 있는 데이터 전송을 보장한다. → 패킷의 중복, 분실, 순서 바뀜을 자동으로 해결해 줌.

- ACK(Acknowledgement: 패킷을 받았다고 응답하는 것)을 통해 패킷의 손실을 막는다.

- 데이터 전송 시 순서 번호를 같이 전송하여, 데이터의 순서를 보장한다.

- 데이터 전송 속도가 UDP에 비해 느리다.

[TCP를 이용한 통신 절차]

이미지 출처: http://terms.naver.com/entry.nhn?docId=2271961&cid=51207&categoryId=51207


<UDP>

- User Datagram Protocol

- Datagram: 발신 단말에서 수신 단말로의 경로를 결정하는 정보를 가지고 있는 패킷의 일종.

- 비연결형 서비스를 지원한다.

- 연결설정 및 해제설정 없이 데이터를 전송하는 방식.

- 정해진 경로가 없기 때문에 전송된 패킷이 서로 다른 경로로 목적지에 도착한다. → 데이터가 순서대로 도착하지 않음.

- 신뢰성이 없다. → 데이터가 잘 전송되었는지 확인하지 않는다.

- TCP보다 구조가 단순해 전송 효율이 좋으며, 고속 전송이 필요한 환경에 유용하다. (ex) 동영상 스트리밍)

[데이터그램 방식에서 패킷 경로]

이미지 출처: http://terms.naver.com/entry.nhn?docId=2271819&cid=51207&categoryId=51207



이미지 출처: http://blog.naver.com/wisseraph/40184616089


<기타 단어>

- 라우터

- 서로 다른 네트워크를 중계해주는 장치 → 브릿지 역할

- 보내지는 송신정보(패킷)에서 수신처 정보를 읽어 가장 적절한 통신통로를 지정하고, 다른 통신망으로 전송하는 장치. (LAN ↔ LAN, LAN → WAN)

- 유지보수가 용이하며, 통신방식에 구애받지 않기 때문에 대규모 통신망을 쉽게 구성할 수 있고, 다양한 경로로 통신량(트래픽)을 분산할 수 있다.

- 초기 환경설정이 어렵고, 다양한 프로토콜 및 하위 프로토콜 지원이 어려우며, 기능이 복잡해 가격이 비싸다.

- 소켓

- 에러 탐지, 패킷의 분할 및 조립, 손실된 패킷의 재전송 등 네트워크와 관련된 일을 프로그래머 대신 수행하여, 프로그래머가 이를 신경쓰지 않고 어플리케이션 제작을 할 수 있도록 돕는 역할을 한다.




[참고사이트]

TCP / UDP

http://blog.naver.com/rnjstjdwo14/40126205254

http://terms.naver.com/entry.nhn?docId=2271922&cid=51207&categoryId=51207

http://terms.naver.com/entry.nhn?docId=2271913&cid=51207&categoryId=51207&expCategoryId=51207

http://terms.naver.com/entry.nhn?docId=2270477&cid=51173&categoryId=51173

http://terms.naver.com/entry.nhn?docId=2271924&cid=51207&categoryId=51207&expCategoryId=51207


연결형/비연결형 서비스

http://proneer.tistory.com/325

http://terms.naver.com/entry.nhn?docId=2271885&cid=51207&categoryId=51207

'Study' 카테고리의 다른 글

SSL 과 TLS, HTTPS  (0) 2017.01.13
OSI 7계층  (0) 2017.01.10
MVC 패턴  (0) 2016.12.11
컴파일러 언어와 인터프리터 언어  (0) 2016.12.11
정적인 페이지와 동적인 페이지  (0) 2016.11.26