TCP
- 패킷 사이의 순서를 보장하고 연결지향 프로토콜을 사용해서 연결을 하여 신뢰성을 구축해서 순시 여부를 확인
- 가상회선 패킷 교환 방식 사용
가상회선 패킷 교환 방식
- 각 패킷에는 가상회선 식별자가 포함되며
모든 패킷을 전송하면 가상회선이 해제되고 패킷들은 전송된 순서대로 도착
3-way-handshake
- [1 단계]
클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보냅니다.
ISN은 새로운 TCP 연결의 첫 번쨰 패킷에 할당된 임의의 시퀀스 번호를 말함 - [2 단계]
서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보냅니다 - [3 단계]
클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK를 서버에 보냄
4-way-handshake
- [1 단계]
- 먼저 클라이언트가 연결을 닫으려고 할 때 FIN으로 설정된 세그먼트롤 보냄
- 또한 FIN_WAIT_1 상태로 들어가고 서버의 응답을 기다림
- [2 단계]
- 서버는 클라이언트로 ACK라는 승인 세그먼트를 보내고 CLOSE_WAIT 상태로 들어감
- 클라이언트가 세그먼트를 받으면 FIN_WAIT_2 상태에 들어감
- [3 단계]
- 서버는 ACK를 보내고 일정 시간 이후에 클라이언트에 FIN이라는 세그먼트롤 보냄
- [4 단계]
- 클라이언트는 TIME_WAIT 상태가 되고 다시 서버로 ACK를 보내서 서버는 CLOSED 상태가 됌
- 이후 클라이언트는 어느 정도의 시간을 대기한 후 연결이 닫히고
- 클라이언트와 서버의 모든 자원의 연결이 해제됌
TIME_WAIT
- 지연 패킷이 발생할 경우를 대비하기 위함
- 패킷이 뒤늦게 도달하고 이를 처리하지 못한다면 데이터 무결성 문제가 발생
- 두 장치가 연결이 닫혔는지 확인하기 위함
- 만약 LAST_ACK 상태에서 닫히게 되면
- 다시 새로운 연결을 하려고 할 때 장치는 줄곧 LAST_ACK로 되어 있기 때문에 접속 오류가 나타남
UDP
- 순서를 보장하지 않고 수신 여부를 확인하지 않으며 단순히 데이터만 줌
- 데이터그램 패킷 교환방식 사용
데이터그램 패킷 교환 방식
- 패킷이 독립적으로 이동하며 최적의 경로를 선택
- 하나의 메시지에서 분할된 여러 패킷은 서로 다른 경로로 전송될 수 있으며
도착한 순서가 다를 수 있는 방식
'CS > Network' 카테고리의 다른 글
[Network] HTTP (0) | 2024.08.26 |
---|---|
[Network] 스위치 (0) | 2024.08.26 |
[Network] 토폴로지 (0) | 2024.08.26 |
[Network] 이런저런~ (0) | 2024.08.06 |
[Network] 구현 코드 깃 링크 (0) | 2024.03.30 |