본문 바로가기

웹 프로그래밍/HTTP

인터넷 네트워크

인터넷 통신

-복잡한 인터넷 망? -> IP(인터넷 프로토콜) 주소 부여 e.g. 클라이언트(100.100.100.1)  서버(200.200.200.2)

-역할

    -지정한 IP 주소에 데이터 전달

    -패킷(Packet)이라는 통신 단위로 데이터 전달

 

-패킷정보 (출발지IP, 목적지IP,기타, 전송데이터)

 

IP 프로토콜의 한계

-비연결성(패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송됨)

-비신뢰성

    -중간에 패킷이 사라지면(패킷 손실)?

    -패킷이 순서대로 안오면(World Hello,)?

-프로그램 구분(같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘이상이면?)

 

통신 과정

인터넷 프로토콜 스택의 4계층

 

애플리케이션 계층(HTTP,FTP)
전송 계층(TCP,UDP)
인터넷 계층(IP)
네트워크 인터페이스 계층

 

애플리케이션 웹 브라우저, 채팅 프로그램(SOCKET 라이브러리)
OS TCP, UDP
IP
네트워크 인터페이스 LAN 드라이버, LAN 장비, LAN 카드

1. 프로그램이 Hello, wolrd! 메세지 작성

2. SOCKET 라이브러리를 통해 전달

3. TCP 정보 생성, 메세지 데이터 포함

    -TCP 정보(출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등)

4. IP 패킷 생성, TCP 데이터 포함

TCP와 UDP

-TCP 특징(Transmission Control Protocol: 전송 제어 프로토콜)

    -연결지향: TCP 3 way handshake(가상 연결) -> 비연결성 해결

    -데이터 전달 보증 -> 비신뢰성 해결(누락)

    -순서 보장 -> 비신뢰성 해결

    -신뢰할수 있는 프로토콜

    -현재는 대부분 TCP 사용

 

-TCP 3 way handshake(가상 연결)

    1.SYN(클 -> 서)

    2.SYN+ACK(서 -> 클)

    3.ACK(클 -> 서) + 데이터 전송 가능

    4.데이터 전송

    -SYN(접속 요청), ACK(요청 수락)

 

-데이터 전달 보증

    1.데이터 전송(클 -> 서)

    2.데이터 잘 받았음(서 -> 클)

 

-순서 보장

    1.패킷1,2,3 순서로 전송(클 ->서)

    2.패킷1,3,2 순서로 도착(서)

    3.패킷 2부터 다시보내(서 -> 클)

 

-UDP 특징(User Datagram Protocol: 사용자 데이터그램 프로토콜)

    -기능이 거의 없음

    -연결 지향 X

    -데이터 전달 보증 X

    -순서 보장 X

    -데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름(최적화 가능)

    -IP와 거의 같음( + PORT(구별) + 체크섬(검증) )

    -애플리케이션에서 추가 작업 필요

 

PORT

-같은 IP 내에서 프로세스를 구분하는 용도

-한번에 둘이상 연결해야 한다면(게임, 화상통화, 웹)?

-응답 패킷이 어떤것을 위한것인지 어떻게 구분할것인가? -> TCP/IP 패킷에서 출발지 PORT, 목적지 PORT

 

 

DNS(Domain Name System:도메인 네임 시스템)

-IP는 기억하기 어려움, 변경될수도 있음 -> DNS 서버에서 도메인 명을 IP 주소로 변환(google.com)

'웹 프로그래밍 > HTTP' 카테고리의 다른 글

HTTP 상태코드  (0) 2023.02.24
HTTP 메서드 활용  (0) 2023.02.24
HTTP 메서드  (0) 2023.02.22
HTTP  (0) 2023.02.22
URI와 웹 브라우저  (0) 2023.02.21