코딜기
[Network] IP/TCP 프로토콜 및 포트(Port) 본문
반응형
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