코딜기

[Network] IP/TCP 프로토콜 및 포트(Port) 본문

Web Programing/Network

[Network] IP/TCP 프로토콜 및 포트(Port)

코딜기 2024. 9. 25. 19:40
반응형

Basic Knowledge

  • 클라이언트 (Client) : 데이터를 요청하는 컴퓨터
  • 서버 (Server) : 데이터를 응답해 주는 컴퓨터
  • lP (Internet Protocol (Address)) : 컴퓨터를 구분하는 주소 체계로, 패킷이 목적지에 도착할 수 있도록 경로를 지정
  • TCP (Transmission Control Protocol) : 데이터 전송의 신뢰성을 보장하는 프로토콜로, 데이터가 손실 없이 도착하도록 하고, 순서가 어긋나지 않게 보장
  • 패킷 (Packet) : 인터넷에서 전송되는 데이터의 단위로, 발신자와 수신자 IP가 포함되어 있음

IP의 한계

1. 비연결성

  • 패킷을 받을 대상이 없거나 서비스가 불능인 상태에서도 패킷을 전송하는 것을 의미합니다.

2. 비신뢰성

  • 패킷이 중간에 사라지거나 패킷의 순서가 보장되지 않는 것을 의미합니다.

3. 프로그램 구분 불가능

  • IP 프로토콜의 문제는 같은 컴퓨터에서 여러 개의 애플리케이션이 데이터를 보내도 받는 쪽에서 구분을 못한다는 것입니다.

IP 프로토콜의 한계를 보완해 주는 TCP

  • IP가 단순한 데이터 전송에만 집중한다면 TCP는 데이터가 정확하고 순서에 맞게 안정적으로 전송되었는지에 집중합니다.

3-Way Handshaking

  • 패킷을 전송하기 전, TCP는 연결지향형 프로토콜이기 때문에, 송신 측과 수신 측이 서로 연결되는 작업이 필요합니다.
  • 3 Way Handshaking 은 SYN(동기화)과 ACK(승인)로 진행됩니다.

  • 먼저, 클라이언트는 서버에게, 접속을 요청하는 SYN 패킷을 보냅니다.
  • 서버는 SYN 패킷을 받고, 클라이언트에게 요청을 수락한다는 ACK와 SYN 플래그가 설정된 패킷을 보냅니다.
  • 클라이언트는 다시 서버에게 ACK 패킷을 보냅니다.
  • 이제 3 Way Handshaking으로 기기 간 연결이 성립되었으니, 데이터 통신이 가능해집니다.

포트(Port)란?

  • 하나의 컴퓨터에서 여러 프로그램이 동시에 실행되며, 각 프로그램을 구분해 주는 번호가 포트입니다.
  • TCP는 데이터를 전송하기 전에 IP에서 생성된 패킷에 추가로 세그먼트를 생성합니다.
  • 세그먼트에는 패킷의 IP 정보에 더해 포트 번호전송 제어데이터 순서오류 검증 정보가 포함됩니다.

 

  • IP 프로토콜은 프로그램을 구분하지 못하는 한계가 있는데, 이를 보완하기 위해 TCP는 포트 번호를 추가하여 데이터를 전송합니다.

Port 번호

  • 0~65535 : 포트 번호의 전체 할당 가능 범위입니다.
  • 0~1023 : Well-Known Port (잘 알려진 포트 번호로, 주요 프로토콜이 사용하는 번호이기 때문에 커스텀 포트 번호로는 사용하지 않는 것이 좋습니다.)

대표적인 포트 번호 

  • FTP - 20, 21
  • SSH - 22
  • HTTP - 80
  • HTTPS - 443
반응형

'Web Programing > Network' 카테고리의 다른 글

[Network] DNS(Domain Name System)  (0) 2024.09.25
Comments