일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 스프링
- 스프링부트
- 소켓
- 프로그래밍언어론
- 데이터베이스
- JPA
- javascript
- libasm
- 오블완
- IOS
- 42seoul
- springboot
- 아이패드다이어리
- 티스토리챌린지
- 리눅스
- DBMS
- 오라클
- sql
- Xcode
- CI
- 인공지능
- 네트워크
- AI
- Spring
- jenkins
- 스프링부트 웹 소켓
- swift
- 다이어리
- CD
- MySQL
- Today
- Total
Hi yoahn 개발블로그
[netwhat] 4. TCP / UDP 본문
1. TCP / UDP
- TCP / IP의 전송계층에서 사용되는 프로토콜
- 전송계층 : IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층
TCP | UDP |
연결지향형 프로토콜 (연결 성공해야 통신 가능) |
비 연결지향형 프로토콜 (연결 없이 통신 가능) |
바이트 스트림을 통한 연결 (데이터 경계 구분하지 않음) |
메세지 스트림을 통한 연결 (데이터 경계 구분) |
혼잡제어 / 흐름제어 | 혼잡 / 흐름 제어 X |
전달 순서 보장 상대적으로 느림 |
전달 순서 보장되지 않음 상대적으로 빠름 |
신뢰성있는 데이터 전송 (안정적) | 데이터 전송 보장 안됨 |
TCP packet : 세그먼트 | UDP packet : 데이터그램 |
HTTP, Email. File transfer | DNS, Broadcasting (실시간 동영상 서비스) |
일대일 통신 (Unicast) | 일대일, 일대다(Broadcast), 다대다(Multicast) 통신 |
공통점
- 포트 번호를 이용하여 주소 지정
- 데이터 오류 검사를 위한 체크섬 존재
2. TCP (Transmission Control Protocol)
- 연결지향형 서비스와 신뢰적인 데이터 전송 서비스 포함
- 애플리케이션이 TCP 전송 프로토콜을 사용하면 애플리케이션은 TCP 로부터 두가지 서비스를 받는다.
# 연결 지향형 서비스
: 클라이언트와 서버가 서로 연결되어있는지 확인한 후, 클라이언트가 준비되면 데이터를 주고받는다.
(전이중연결)
- 애플리케이션 계층 메시지를 전송하기 전에 TCP는 클라이언트와 서버가 서로 전송제어 정보를 교환하도록 한다.
-> 안정적으로, 순서대로, 에러 없이 세그먼트를 교환
# 혼잡제어
- 전체를 위한 일반 서비스
- 한 TCP 연결이 과도한 양의 트래픽으로 모든 통신하는 호스트들 사이의 스위치와 링크를 폭주되게 하는 것을 방지하는 것
== 하나의 TCP 연결에서 트래픽이 몰려 다른 호스트들까지 방해되지 않도록
- 각 TCP 연결이 링크의 대역폭을 공평하게 공유하여 통과하도록 해준다.
(송신 측의 TCP가 네트워크에 보낼 수 있는 트래픽을 조절함으로써 수행)
# 흐름제어
- 데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지
- 송신하는 곳에서 많은 데이터를 빠르게 보내 수신하는 곳에서 문제가 일어나는 것을 방지
- 수신자가 Window Size 값을 통해 수신량을 정할 수 있다.
# 신뢰성이 높은 전송
- 한 패킷을 전송한 후, 송신자는 수신자로부터 ACK / NAK 응답을 기다린다.
- 한 패킷에 대해 ACK 값이 중복으로 오면 송신자는 수신자가 보낸 ACK 패킷의 다음 패킷을 정확하게 수신하지 못한 것 -> 재전송
- 일정 시간동안 ACK 값이 수신되지 않는 경우 재전송
# 전이중, 점대점 방식
- 전이중 (Full-Duplex) : 양방향 전송 (동시에 가능)
- 점대점 (Point to Point) : 각 연결이 정확히 2개의 종단점을 가지고 있다.
=> 멀티캐스팅 & 브로드캐스팅 지원하지 않음
3. UDP (User Datagram Protocol)
- 비연결형
: 두 프로세스가 통신을 하기 전에 핸드셰이킹을 하지 않음
- UDP는 혼잡제어 방식을 포함하지 않음
- UDP의 송신 측은 원하는 속도로 데이터를 보낼 수 있다. (실제로는 중간 링크들의 제한된 대역폭 || 혼잡으로 속도가 줄어들 수 있음)
'sswu > 컴퓨터네트워크' 카테고리의 다른 글
[netwhat] 6. DHCP/DNS (0) | 2021.01.07 |
---|---|
[netwhat] 5. OSI 모델, Network layers (0) | 2021.01.07 |
[netwhat] 3. 공인 / 사설 (public / private) IP (0) | 2021.01.05 |
[netwhat] 2. Netmask / Subnetmask / Broadcast (0) | 2021.01.05 |
[netwhat] 1. What is an IP address (0) | 2020.12.28 |