IP (인터넷 프로토콜)
- 인터넷 망은 매우 복잡하다 그럼 어떤 규칙으로 통신하는걸까?
- IP 주소를 통해서 출발,목적 주소를 정해서 통신한다.
- 패킷이라는 통신 단위로 지정한 IP 주소에 데이터를 전달한다.
- IP의 한계(문제점)
- 비연결성
- 받을 대상이 불능 상태여도 일단 패킷을 전송한다
- 비신뢰성
- 중간에 노드가 유실되서 패킷이 사라질수도있다.
- 패킷이 노드를 무작위로 돌다가 순서대로 도착하지 않을수도있다.
- 프로그램 구분
- 같은 IP를 사용하는게 2개이상일때는 어떻게 할 것인가?
TCP,UDP
IP위에 살짝 올려서 보완해주는 역할로 생각하자
-
프로토콜 계층
- 채팅 프로그램을 통한 전송 방법
1. hello 메시지 생성
2. 소켓 라이브러리를 통해서 전달
3. TCP 정보 생성해서 메시지 데이터를 포함시킨다
4. IP패킷 생성해서 앞서 만든 TCP데이터를 포함 시킨다
- IP패킷 정보
- TCP 세그먼트
- 출발지PORT,목적지PORT,전송제어,순서,검증정보
-
TCP 특징
- 연결지향 - TCP 3 way handshake (가상연결)
- 클라이언트가 SYN(접속요청)을 보냄
- 서버가 SYN(접속요청)와 ACK(요청수락)를 보냄
- 마지막으로 서버에대한 접속요청에대한 ACK를 클라이언트가 보냄
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 대부분 TCP 사용
-
UDP 특징 / 사용자 데이터그램 프로토콜(User Datagram Protocol)
- 기능이 거의 없다 , 하얀 도화지
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠르다
- IP와 거의 같다 거기에 + PORT +체크섬 정도만 추가된다
- 애플리케이션에서 추가 작업을 한다
PORT
같은 IP 내에서 프로세스를 구분한다
- IP를 아파트에 비유한다면 port는 몇동 몇호인지 구분하는 느낌
- PORT별 기능
- 0~65535 할당 가능
- 0~1023 잘 알려진 포트 , 사용하지 않는 것이 좋다
- FTP 20,21
- TELNET 23
- HTTP 80
- HTTPS 443
DNS
도메인명을 IP주소로 변환
- 도메인 명에 IP주소를 저장 시킨다
- google.com 이 200.200.200.2를 가지면 우린 google.com으로 기억하면됨
- google.com의 IP가 변경 되도 우리는 google.com으로 기억하고 있으면 되기 때문에 편하다
- 기억하기 어려운 IP 주소를 기억하기 쉽게해준다
김영한님의 모든 개발자를 위한 HTTP 웹 기본 지식을 참고하여
작성한 자료입니다.