[TIL] 네트워크 계층

Narastro·2021년 8월 4일
0

TIL

목록 보기
11/16
post-thumbnail

🥖 4-way 핸드쉐이크 방식

  • TCP의 연결을 해제(Connection Termination) 하는 과정

TCP는 연결할 때 3-way handshake를 하며, 연결을 끊을 때는 4-way handshake를 진행한다. 여기서 handshake는 악수로 만나면 3번의 과정을 통해 악수를 하고 헤어질 땐 4번의 과정의 악수를 한다고 생각하면 된다.

절차

  • A -> B: FIN
    프로세스 A가 연결을 종료하겠다는 FIN 플래그를 전송
    프로세스 B가 FIN 플래그로 응답하기 전까지 연결을 계속 유지

  • B -> A: ACK
    프로세스 B는 일단 확인 메시지를 보내고 자신의 통신이 끝날 때까지 기다린다. (이 상태가 TIME_WAIT 상태)
    수신자는 Acknowledgement Number 필드를 (Sequence Number + 1)로 지정하고, ACK 플래그 비트를 1로 설정한 세그먼트를 전송한다.
    그리고 자신이 전송할 데이터가 남아있다면 이어서 계속 전송한다.

  • B -> A: FIN
    프로세스 B가 통신이 끝났으면 연결 종료 요청에 합의한다는 의미로 프로세스 A에게 FIN 플래그를 전송

  • A -> B: ACK
    프로세스 A는 확인했다는 메시지를 전송

출처: https://gmlwjd9405.github.io/2018/09/19/tcp-connection.html

🌮 TCP 규격

🍗 UDP 차이

  • 발신 포트 번호 (source port 16비트) : TCP 와 동일
  • 수신 포트 번호 (destination port 16비트) : TCP 와 동일
  • 패킷 전체 길이 : 헤더와 데이터를 포함한 바이트 단위의 길이. 최소값 8 (헤더만 포함될 때)
  • 체크섬 : 선택 항목, 헤더와 데이터의 에러를 확인 하기 위한필드 (체크섬 값이 0이면 수신측은 체크섬 계산 안함)

달라지는 점?

  • 악수를 안 해도 된다 (3-way-악수)
  • 신뢰성이 보장되지 않는다.

🥨 PORT가 같으면 응용 프로그램이 같아질까? PORT가 달라도 응용 프로그램이 같을 수 있을까

PORT란

응용프로그램의 논리적인 주소라고 볼 수 있다.
포트 번호는 TCP와 UDP가 상위 계층에 제공하는 주소 표현 방식이다. 이 중 인터넷 환경에서 많이 사용하는 응용 서비스의 할당된 포트 번호를 well-known 포트라고 하는데, 전 세계 모든 컴퓨터가 동일한 포트 번호를 사용하도록 권고되어 있다. 예를 들어 HTTP나 SMTP 같은 것들 말이다.

이러한 포트 번호는 어느 응용프로그램에서 처리할 것인지를 결정하는 데에 사용된다. 요약하자면 어느 응용프로그램이 보낸 데이터인지를 구분하기 위해 송신측 포트 번호가 사용되고 어느 응용 프로그램이 수신해야 하는지를 구분하기 위해 수신측 포트 번호가 사용된다.

한 프로그램에서 여러 개의 포트를 사용할 수 있을까?

그렇다. 우리는 각각의 포트에 대해 정보 및 알림을 받을 수 있고 해당 포트에 대한 연결을 관리할 수 도 있다. 따라서 PORT가 달라도 응용 프로그램이 같을 수 있다.

🌭 Why BASE64?

🥠 UUID 위키

profile
Earn this, Earn it.

0개의 댓글