1. 전송 계층(Transport Layer)
- End point간 신뢰성있는 데이터 전송을 담당하는 계층
- 패킷(Segment or Datagram)이 전송 과정에서 문제 없이 수신자에게 도착할 수 있도록 제어
- 패킷 : 네트워크를 통해 전송되는 형식화된 데이터 덩어리
- 신뢰성 : 데이터를 순차적, 안정적으로 전달
- 전송 : 포트 번호에 해당하는 프로세스에 데이터 전달
전송 계층이 없다면 (전송 계층의 중요성)
- 데이터의 순차 전송이 원활하지 않다.
- Flow(흐름 문제)
- 원인 : 송수신자 간의 데이터 처리 속도 차이
- 수신자가 처리할 수 있는 데이터양 초과 → 데이터 누락 발생 가능
- Congestion(혼잡 문제)
- 원인 : 네트워크의 데이터 처리 속도
→ 결과 : 데이터 손실 발생
2. TCP(Transmission Control Protocol)
- 연결형, 신뢰성 전송 프로토콜
- 연결형
- 송수신자 간에 논리적인 연결이 설정되어 있다.
- 3-way-handshake를 통해 연결을 설정하고, 4-way-handshake를 통해 연결을 해제한다.
- 신뢰성
- 데이터의 순차 전송 보장
- 흐름 제어 : 송신자가 수신자의 처리속도보다 더 빨리 데이터를 전송하지 못하도록 제어
- 혼잡 제어 : 네트워크가 혼잡해지지 않게 조절
- 오류 제어 : 데이터 전송 중 발생되는 에러 검출 및 보정
- 장점
- 데이터 전송의 신뢰성 보장
- 단점
- 데이터 전송 속도가 느리다.
- 패킷을 조금만 손실해도 재전송
- 데이터 전송 속도가 느리다.
- 활용되는 곳
- 데이터의 신뢰성이 중요할 때 (ex. 파일 전송)
- Segment 구조
- TCP Header + Data
- TCP Header + Data
3. UDP(User Datagram Protocol)
- 비연결형, 비신뢰성 전송 프로토콜
- 비연결형
- 송수신자간의 논리적인 연결 설정이 필요없다. (3-way-handshake X)
- 단순히 송신자가 수신자를 향해 패킷(Datagram)을 전송한다.
- 비신뢰성
- 흐름 제어 X
- 혼잡 제어 X
- 오류 제어 거의 없음 (오류 검출만 가능)
- 장점
- 데이터 전송 속도가 빠르다.
- TCP의 경우 손실된 패킷을 재전송하기 위해 시간이 더 오래 걸린다.
- 데이터 전송 속도가 빠르다.
- 단점
- 신뢰성이 보장되지 않으므로 데이터 전송 시 손실되는 데이터 발생 가능
- 활용되는 곳
- 비교적 데이터의 신뢰성이 중요하지 않을 때, 연속성이 중요할 때 사용 (ex. 영상 스트리밍)
- Datagram 구조
- UDP Header + Data
- UDP Header + Data
면접 예상 질문
- TCP와 UDP를 비교해서 설명해주세요.
- TCP의 장점과 단점을 설명해주세요.
- UDP의 장점과 단점을 설명해주세요.
참고 URL
https://www.youtube.com/watch?v=ikDVGYp5dhg
https://developer.mozilla.org/ko/docs/Glossary/Packet
https://better-together.tistory.com/134
http://www.ktword.co.kr/test/view/view.php?m_temp1=476
http://www.ktword.co.kr/test/view/view.php?m_temp1=392&id=746
https://ko.wikipedia.org/wiki/%ED%98%BC%EC%9E%A1_%EC%A0%9C%EC%96%B4
http://www.ktword.co.kr/test/view/view.php?m_temp1=1299&id=772
http://www.ktword.co.kr/test/view/view.php?m_temp1=475&id=771
https://devmoony.tistory.com/128
https://www.javatpoint.com/udp-protocol
https://www.javatpoint.com/tcp
https://medium.com/pplink/%EC%9D%B8%ED%84%B0%EB%84%B7%EC%97%90%EC%84%9C-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%A0%84%EC%86%A1%ED%95%98%EB%8A%94-%EB%91%90-%EA%B0%80%EC%A7%80-%EB%B0%A9%EB%B2%95-tcp%EC%99%80-udp-caaaa51783eb
'네트워크' 카테고리의 다른 글
HTTP와 HTTPS 차이 (0) | 2024.01.07 |
---|---|
TCP Handshake (1) | 2023.12.22 |
OSI 7계층 구조 (0) | 2023.11.18 |