* 이 게시글은 모 든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강한 뒤 정리한 글입니다.
인터넷 통신
클라이언트 ⮆ 인터넷 ⮆ 서버
- 클라이언트에서 서버로 데이터가 넘어갈 때는 인터넷 망을 통해 넘어감
- 인터넷 망은 복잡함
IP (인터넷 프로토콜)
역할
- 지정한 IP 주소에 데이터 전달
- 패킷이라는 통신 단위로 데이터 전달
- IP 패킷은 인터넷망을 통해 인터넷망 노드끼리 이동해서 서버로 전달함.
IP 패킷 정보
- 출발지 IP
- 목적지 IP
- TCP 관련 정보 : 하단에 보면 있음
- 전송데이터
IP 프로토콜의 한계
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능상태여도 패킷 전송
- 비신뢰성 : 중간에 패킷이 사라지거나 순서대로 안오는 경우는?
- 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
TCP / UDP
인터넷 프로토콜 스택의 4계층

- 데이터 생성
- TCP 정보 생성, 데이터 포함
- IP 패킷 생성, TCP 데이터 포함
TCP
- 전송 제어 프로토콜 (Tranmission Control Protocol)
- 연결지향 - TCP 3 way handshake (가상연결) ⮆ 이후 데이터를 보냄
- 클라이언트에서 서버로 SYN 메시지 보냄
- 서버에서 클라이언트로 SYN + ACK 메시지 보냄
- 클라이언트에서 서버로 ACK 보냄
- 데이터 전달 보증 : 데이터 전송 완료시 서버에서 전달완료됨을 알려줌.
- 순서 보장 : 최적화도 가능하지만 주로 잘못오면 잘못된 순서부터 다시 보내달라고 서버에서 요청함.
- 신뢰할 수 있는 프로토콜
- 대부분 TCP 사용
TCP 세그먼트
- 출발지 PORT
- 목적지 PORT
- 전송제어
- 순서
- 검증 정보
UDP
- 사용자 데이터그램 프로토콜 (User Datagram Protocol)
- 연결지향 X
- 데이터 전달 보증 X
- 순서보장 X
- 단순하고 빠름
- IP와 거의 비슷하고, PORT, 데이터 검증 정도만 추가
- 애플리케이션에서 추가 작업 필요
PORT
- IP는 목적지 서버를 찾는것. PORT는 서버 안에서 돌아가는 애플리케이션들을 또 구분하는 것
- 0 ~ 65535 할당 가능
- 0 ~ 1023 : 잘 알려진 포트로 사용하지 않는 것이 좋음
- FTP : 20, 21
- TELNET : 23
- HTTP : 80
- HTTPS : 443
DNS
IP의 단점 - > DNS를 사용함
- 기억하기 어려움
- IP는 변경될 수 있다
DNS
- 도메인 네임 시스템 (Domain Name System)
- DNS서버에 도메인을 등록할 수 있음
- 유저가 도메인을 입력하면 클라이언트가 도메인을 도메인 서버에 요청하면 클라이언트에 IP반환
* 이 게시글은 모 든 개발자를 위한 HTTP 웹 기본 지식 강의를 수강한 뒤 정리한 글입니다.
인터넷 통신
클라이언트 ⮆ 인터넷 ⮆ 서버
- 클라이언트에서 서버로 데이터가 넘어갈 때는 인터넷 망을 통해 넘어감
- 인터넷 망은 복잡함
IP (인터넷 프로토콜)
역할
- 지정한 IP 주소에 데이터 전달
- 패킷이라는 통신 단위로 데이터 전달
- IP 패킷은 인터넷망을 통해 인터넷망 노드끼리 이동해서 서버로 전달함.
IP 패킷 정보
- 출발지 IP
- 목적지 IP
- TCP 관련 정보 : 하단에 보면 있음
- 전송데이터
IP 프로토콜의 한계
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능상태여도 패킷 전송
- 비신뢰성 : 중간에 패킷이 사라지거나 순서대로 안오는 경우는?
- 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
TCP / UDP
인터넷 프로토콜 스택의 4계층

- 데이터 생성
- TCP 정보 생성, 데이터 포함
- IP 패킷 생성, TCP 데이터 포함
TCP
- 전송 제어 프로토콜 (Tranmission Control Protocol)
- 연결지향 - TCP 3 way handshake (가상연결) ⮆ 이후 데이터를 보냄
- 클라이언트에서 서버로 SYN 메시지 보냄
- 서버에서 클라이언트로 SYN + ACK 메시지 보냄
- 클라이언트에서 서버로 ACK 보냄
- 데이터 전달 보증 : 데이터 전송 완료시 서버에서 전달완료됨을 알려줌.
- 순서 보장 : 최적화도 가능하지만 주로 잘못오면 잘못된 순서부터 다시 보내달라고 서버에서 요청함.
- 신뢰할 수 있는 프로토콜
- 대부분 TCP 사용
TCP 세그먼트
- 출발지 PORT
- 목적지 PORT
- 전송제어
- 순서
- 검증 정보
UDP
- 사용자 데이터그램 프로토콜 (User Datagram Protocol)
- 연결지향 X
- 데이터 전달 보증 X
- 순서보장 X
- 단순하고 빠름
- IP와 거의 비슷하고, PORT, 데이터 검증 정도만 추가
- 애플리케이션에서 추가 작업 필요
PORT
- IP는 목적지 서버를 찾는것. PORT는 서버 안에서 돌아가는 애플리케이션들을 또 구분하는 것
- 0 ~ 65535 할당 가능
- 0 ~ 1023 : 잘 알려진 포트로 사용하지 않는 것이 좋음
- FTP : 20, 21
- TELNET : 23
- HTTP : 80
- HTTPS : 443
DNS
IP의 단점 - > DNS를 사용함
- 기억하기 어려움
- IP는 변경될 수 있다
DNS
- 도메인 네임 시스템 (Domain Name System)
- DNS서버에 도메인을 등록할 수 있음
- 유저가 도메인을 입력하면 클라이언트가 도메인을 도메인 서버에 요청하면 클라이언트에 IP반환