앞의 글을 읽으시면 이해에 도움이 됩니다.
2023.04.08 - [Computer Science/네트워크] - [네트워크] Transport-Layer Protocols for Application
1. Transport Protocol Services
- 인터넷에 의해 제공되는 transport service들에 대해 알아봅시다.
- 대표적으로 Transport Protocol로는 User Datagram Protocol(UDP)와 Transmission Control Protocol(TCP)가 있습니다.
- 두 개의 다른 프로토콜은 어플리케이션에 속해져서 서비스를 제공합니다.
- 이번 글에서는 TCP, UDP의 구조가 아닌, 제공하는 서비스 측면에서 살펴봅니다.
- 자세한 구조는 다음 챕터인 Transport Layer에서 소개합니다.
2. TCP services
- TCP 서비스 모델은 connection-oriented service, reliable data transfer service를 포함합니다.
- Connections-oriented service는 다음과 같습니다.
- TCP는 client와 server가 통신하기 전에, 즉 application 단계에서 통신을 하기 전에 transport-layer에서 control information을 주고 받습니다.
- 이를 handshaking이라 하며, 자세한 내용은 추후 설명합니다.
- 아무튼 이런 handshaking이 성사되면, TCP connection이 두 프로세스 간에 체결됩니다.
- 이로 인해 두 개의 프로세스는 서로 메시지를 송수신할 수 있게 됩니다.
- Reliable Data Tranfer은 다음과 같습니다.
- 통신하는 프로세스는 TCP에 의존하여 전송하는 데이터를 에러 없이 전송할 수 있고, 올바른 순서로 전송할 수 있습니다.
- TCP는 손실하거나 중복되는 데이터가 없이 전송할 수 있습니다.
- 그 외에도 TCPsms congestion-control mecahnism, flow-control 서비스를 제공합니다.
3. UDP services
- UDP는 TCP에 비해 적은 서비스를 제공합니다.
- UDP는 connectionless입니다. 따라서 handshaking도 없습니다.
- 또한 UDP는 unreliable data tranfer service를 제공합니다. 즉 UDP는 프로세스 간 데이터 통신에 어떠한 보장도 하지 않습니다.
- 따라서 UDP를 이용한다면 프로세스에 도착하는 메시지는 순서에 맞지 않을 수도 있습니다.
- UDP는 심지어 congestion-control mechanism도 포함하지 않습니다.
- 그럼 UDP는 왜 필요하죠?
- 만약 송신 측에서 메시지를 1, 2, 3, 4, 5로 쪼개서 보냈다고 가정해봅시다.
- 그러다가 중간에 순서가 바뀌어서 1, 3, 4, 5, 2로 수신되었습니다.
- TCP의 경우 이를 다시 1, 2, 3, 4, 5로 재조립하여 Application으로 올립니다.
- 근데 만약 2가 오지 않는 경우라면 어떻게 될까요?
- 2가 수신될 때까지 TCP는 기다립니다. 하지만 UDP는 수신측이 요구하면 바로 Application으로 올립니다.
- 이것이 왜 UDP가 필요한지 보여주는 예시입니다.
4. Securing TCP, TLS
- Transport Layer Security(TSL)는 TCP의 업그레이드 버전입니다.
- TLS는 application layer에서 구현됩니다.
- 해당 서비스는 TCP의 모든 것을 포함할 뿐만 아니라, encryption, data integrity, end-point authenticatioin인 프로세스 간 보안 서비스도 제공합니다.
- data integrity는 데이터 무결성을 의미하며, 중간에 데이터가 바뀌지 않았는지 검사합니다.
- end-point authentication은 이 메시지를 보낸 이가 진짜 메시지를 보냈는지 검사합니다.
참고
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업
Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년
Chat GPT, Bing AI
다음 글에서는 Application-Layer Protocol에 대해 알아보겠습니다.
2023.04.08 - [Computer Science/네트워크] - [네트워크] Application-Layer Protocols
감사합니다.
지적 환영합니다.
'Computer Science > 네트워크' 카테고리의 다른 글
[네트워크] What is HTTP? (1) | 2023.04.09 |
---|---|
[네트워크] Application-Layer Protocols (0) | 2023.04.08 |
[네트워크] Transport-Layer Protocols for Application (0) | 2023.04.08 |
[네트워크] Application Layer (0) | 2023.04.07 |
[네트워크] Encapsulation (0) | 2023.04.07 |