▶ 인터넷 통신

클라이언트 - 인터넷 - 서버

 

▶ IP(인터넷 프로토콜)

IP 주소 부여

    클라이언트, 서버 모두 IP가 있어야 함

    지정한 IP 주소에 데이터 전달(패킷 이라는 통신 단위로 데이터 전달)

    (패킷(Packet)은 패키지(Package)와 버킷(Bucket)의 합성어)

    패킷에는 출발지 IP, 목적지 IP, 메세지 등이 포함되며,

    IP 패킷을 던지면 인터넷 망 안에서 노드끼리 목적지 IP로 빨리 갈 수 있는 노드를 찾는다.

    보낼 때, 받을 때 다른 경로로 전달될 수 있다.(그때그때 다르다.)

IP 프로토콜의 한계

    비연결성

        패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

    비신뢰성

        중간에 패킷이 사라지면?

        패킷이 순서대로 안오면?

    프로그램 구분

        같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

 

▶ TCP, UDP

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

        애플리케이션 계층 - HTTP, FTP

        전송 계층 - TCP, UDP

        인터넷 계층 - IP

        네트워크 인터페이스 계층

    IP 패킷 안에 TCP 세그먼트가 있고 이안에 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증 정보 등이 들어간다.

    TCP 특징

        전송 제어 프로토콜

            연결지향 - TCP 3 way handshake (가상 연결) SYN -> SYN + ACK -> ACK

            데이터 전달 보증

            순서 보장(패킷)

            신뢰할 수 있는 프로토콜

            현재는 대부분 TCP 사용

    UDP 특징

        하얀 도화지에 비유(기능이 거의 없음)

        연결지향 - TCP 3 way handshake X

        데이터 전달 보증 X

        순서 보장 X

        데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

        정리

            IP와 거의 같음 + PORT + 체크섬 정보만 추가

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

        TCP는 다 좋은데 TCP 3 way handshake를 하려면 시간이 필요, TCP는 손을 댈 수 없다.

        UDP는 하얀 도화지와 같기 때문에 최적화할 수만 있다면 이게 더 좋을 수 있다.

 

▶ PORT

같은 IP 내에서 프로세스 구분

내 PC에서 게임, 화상통화, 웹 브라우저가 실행 중일 때 각 서버에서 오는 패킷을 구분하기 위해 PORT가 있다.

TCP/IP 패킷에는 출발지 IP & PORT, 목적지 IP & PORT, 전송 데이터 등이 있다.

IP가 한 아파트라면, PORT는 그 아파트의 호수라고 보면 된다.

0 ~ 65535 할당 가능

0 ~ 1023 잘 알려진 포트, 사용하지 않는 것이 좋음

    FTP - 20, 21

    TELNET - 23

    HTTP - 80

    HTTPS - 443

 

▶ DNS

IP는 기억하기 어렵다.

IP는 변경될 수 있다.

DNS - Domain Name System

    전화번호부

    도메인 명을 IP 주소로 변환

DNS 서버에서 도메인을 구매하여 등록할 수 있다.

    EX) 도메인 명 : aaa.com / IP : 200.200.200.2

    도메인 명이 등록되어 있으면, 위에 2가지 문제가 해결이 된다.

+ Recent posts