전송 계층 프로토콜
- 전송 계층은 OSI 7계층의 4계층에 해당하는 계층입니다. 전송 계층은 데이터가 전달되는 과정에서 수신자와 송신자의 신뢰성을 보장하고, 데이터가 잘 전달되도록 하는 역할을 합니다.
- 이를 위한 대표적인 프로토콜이 두 가지가 있는데, TCP와 UDP입니다.
- TCP는 연결 지향형 프로토콜로, 통신을 시작하기 전에 송신자와 수신자가 연결을 설정합니다. 그리고 오류 제어나 흐름 제어를 통해 데이터가 손실되거나 순서가 바뀌는 것을 방지하여 신뢰성을 보장해준다는 특징이 있습니다.
- 반대로 UDP는 비연결형 프로토콜로, 송신자와 수신자 간의 연결을 설정하지 않습니다. 그리고 데이터의 신뢰성을 보장해주지 않아 데이터의 손실이나 순서가 뒤바뀔 수 있지만, TCP보다 속도가 빠르다는 특징이 있습니다.
IP의 한계
- IP는 OSI 7계층 중 3계층인 네트워크 계층의 프로토콜입니다. IP는 데이터를 전송할 때 UDP와 같이 연결하지 않고 데이터를 전송하기 때문에 데이터가 손실되거나 순서가 뒤바뀔 수 있습니다.
- UDP와의 차이점
- 동작 계층: IP는 네트워크 계층, UDP는 전송 계층에서 동작합니다.
- 목적과 역할: IP는 목적지인 IP 주소까지 데이터를 보내주지만, UDP는 추가적인 포트 번호로 데이터를 전달해줄 수 있습니다.
오류 제어
- 오류 제어란, 데이터 전송 중에 발생하는 오류를 탐지하고 해결하는 과정입니다. TCP에서 데이터의 신뢰성을 보장하기 위해 사용합니다.
- 이 때, 체크섬이라는 기법을 통해 오류를 탐지합니다.
- 체크섬 기법: 데이터를 전송하는 송신자가 데이터의 각 비트를 더한다든가 등의 알고리즘을 적용해서 체크섬 값을 계산하고, 데이터와 함께 전송합니다. 수신자는 데이터와 체크섬 값을 받고, 받은 데이터의 체크섬을 계산하고 받은 체크섬과 같은 지 체크해서 데이터의 무결성을 검사하는 방식입니다.
- 이렇게 했을 때 오류가 발견되면, 데이터를 다시 전송해줍니다.
- 또한 중복된 데이터가 수신되면 제거해주는 역할도 합니다.
흐름 제어
- 흐름 제어란, 데이터 전송의 속도를 조절해서 수신자의 처리 능력보다 데이터 전송 속도가 빠르지 않도록 조절해주는 과정입니다. 수신자의 처리 능력이 데이터의 전송 속도보다 느리면 미리 할당된 버퍼의 한계를 초과해버리는 버퍼 오버플로우라는 현상이 발생해버립니다.
- 데이터가 전송될 때, 수신자는 송신자에게 자신의 버퍼 크기를 송신자에게 알려주고, 송신자는 이 정보를 바탕으로 데이터의 전송 양을 조절합니다.
'TIL' 카테고리의 다른 글
최종 프로젝트 기획안 (1) | 2024.11.13 |
---|---|
[모의 면접 준비] 대칭키와 비대칭키 (0) | 2024.10.28 |
Buffer (0) | 2024.10.22 |
[웹소켓] Chrome_dino 프로젝트 트러블슈팅 (1) | 2024.10.07 |
모의면접 준비 (0) | 2024.09.30 |