인터넷 네트워크 기본

인터넷 통신

클라이언트 인터넷 서버
클라이언트에서 서버로 넘어가기 까지 수많은 노드들을 지나 도착함 그것을 알기위해서는 IP를 알아야 함

IP(Internet Protocol)

데이터를 보내기 위해서는 최소한의 규칙이 필요한데 이 IP 주소를 통해서 보냄

먼저 클라이언트와 서버 둘다 IP주소를 할당 받아야 함,
지정한 IP주소에 데이터 전달
패킷이라는 통신 단위로 데이터 전달함
패킷은 패키지와 덩어리를 뜻하는 버킷의 합성어
IP 패킷 규칙에 따라 보냄 여기에는 출발지IP, 목적지IP 등 데이터를 만들어서 클라이언트 패킷을 전달
다음으로 서버 패킷에서 전달

주고 받을때 다른 방식으로 전달될수있다.

IP 프로토콜의 한계

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

  • 비신뢰성
    중간에 패킷이 사라지면? 패킷이 순서대로 안오면

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

TCP, UDP

Transmission Control Protocol
수많은 문제를 해결하기 위해 등장

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

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

데이터 전달 과정
1. 카카오톡에서 Hello 메시지 생성
2. SOCKET 라이브러리를 통해 전달
3. TCP 정보 생성, 메시지 데이터 포함
4. IP 패킷 생성, TCP 데이터 포함
5. 이더넷 프레임에 렌카드 정보 담아서 발송

TCP 세그먼트에는 출발, 도착지 포트, 전송 제어, 순서, 검증 정보 등등 포함

TCP 특징

  • 연결지향 -TCP 3way handshake(가상 연결 )
    클라이언트와 서버 연결 과정
    1.SYN
    2.SYN + ACK
    3.ACK

  • 데이터 전달 보증
    데이터를 전송하면 서버에서 잘 받았다고 반응

  • 순서 보장
    순서대로 전송했는데 순서가 달라지면 순서대로 다시 보내라고함

  • 신뢰할 수 있는 프로토콜

  • 대부분 TCP 사용

UDP 특징

User Datagram Protocol
사용자 데이터그램 프로토콜
기능이 거의 없음
연결지향, 데이터 전달 보증 X, 순서 보장 X
데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

IP와 거의 같다. + PORT + 체크섬 정도만 추가

PORT

한번에 둘 이상 연결해야 하면?

게임, 디코, 웹서핑 등 하나의 클라이언트가 여러 서버와 통신이 필요함. 주고 받을때 어떤 패킷인지 모름. 그래서 TCP/IP 패킷에 데이터가 담김

IP가 아파트면 포트는 몇동 몇호 라고 생각하면 됨

0~65535 할당 가능
0~1023: 잘 알려진 포트, 사용하지 않는 것이 좋음

FTP - 20, 21
TELNET - 23
HTTP - 80
HTTPS - 443

DNS

Domain Name System

IP는 기억하기 어렵고 변경될 수 있다. 변경되면 접근하기 어렵기 때문에 전화번호부처럼 연동해서 관리

좋은 웹페이지 즐겨찾기