티스토리 뷰

TIL

[Network] TCP/IP

Redirect 2022. 7. 31. 14:20
728x90

TCP/IP의 개념

TCP는 4계층에서 사용하며 패킷의 손실,중복 등 오류가 없도록 보장하며 이를 통해 신뢰적인 전송을 보장하는 프로토콜입니다.

IP는 3계층에서 사용하며 신뢰성이 전혀 없지만 비연결성이므로 IP 주소를 통해 빠르게 목적지에 도달할 수 있습니다.

이 두가지인 TCP/IP를 사용하면 IP 라우팅을 통해 목적지에 도달하며 TCP를 통해 사용자간의 논리적 연결을 생성하고 신뢰성을 유지하기 위해 쓰입니다.

728x90

TCP와 UDP

TCP는 신뢰적인 전송을 보장하며 연결지향적으로 연결 관리를 위한 연결설정이 필요합니다.

UDP는 신뢰성이 없으며 비연결지향적이지만 실시간 응용 및 멀티캐스팅에 적합합니다.

 

TCP와 UDP의 헤더 분석

TCP 헤더의 최소 크기는 20바이트이며 연결지향적이므로 순서를 나타내는 시퀀스 넘버와 응답 넘버가 존재합니다. 또한 신뢰성 있는 전송을 위한 체크섬(데이터의 변조를 확인하기 위한 값)도 헤더에 포함됩니다.

UPD 헤더는 고정적으로 8바이트이며 신뢰성이 없으며 비연결지향적으로 목적지와 출발지의 주소 등 기본적인 정보로 구성된 단순한 헤더의 구조를 가지고 있습니다.

 

TCP의 3-way-handshake와 4-way-handshake

Q. TCP의 연결 설정 과정(3단계)과 연결 종료 과정(4단계)이 단계가 차이나는 이유?

연결 종료 시, 통신이 끝날 때를 알려줘야 하기 때문에 과정이 더 추가 된다.

Q. 만약 Server에서 FIN 플래그를 전송하기 전에 전송한 패킷이 Routing 지연이나 패킷 유실로 인한 재전송 등으로 인해 FIN 패킷보다 늦게 도착하는 상황이 발생하면 어떻게 될까?

그러한 패킷은 Drop되고 데이터는 유실됩니다. 이러한 상황을 방지하기 위해 클라이언트는 일정 시간 동안 세션을 종료하지 않고 대기하게 되는데 이 과정을 TIME_WAIT이라고 합니다.

Q. 초기 Sequence Number인 ISN을 0부터 시작하지 않고 난수를 생성해서 설정하는 이유?

다른 연결 간 ISN 충돌을 피하기 위해 랜덤 숫자를 사용하고 ISN이 예측 가능한 수치라면 보안에 문제가 생길 수 있다.

728x90

'TIL' 카테고리의 다른 글

[OS] 프로세스와 스레드, Thread-safe  (0) 2022.08.13
[Network] DNS, RESTful  (0) 2022.08.02
[Network] Socket, PDU  (0) 2022.08.01
[Network] HTTP/HTTPS와 CORS  (0) 2022.07.31
[Network] OSI 7계층  (0) 2022.07.29
300x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크