인터넷 네트워크

김민기·2024년 3월 18일
0

인터넷 네트워크

인터넷에서 컴퓨터 둘 즉, 클라이언트(사용자)서버는 어떻게 통신을 할까?

클라이언트와 서버를 연결하는 노드(프록시)들의 집합인터넷이라고 한다

어느 노드를 통해야 적절히 연결이 되는지 첫 연결시엔 알 수 없기에
우리는 집 주소처럼 컴퓨터마다 IP 주소를 부여한다

예를 들어,
광진구에 위치한 A와 성동구에 위치한 B가 있다고 가정 할 경우
A (광진구) - 화양동, 성수동, 군자동 - B(성수 1가 2동)


IP

IP는 인터넷 프로토콜(Internet Protocol)의 약자로, 패킷 이라는 통신 단위로 데이터를 전달한다

패킷

IP가 전달하는 패킷은 출발지 IP, 목적지 IP, 기타 정보와 보내고자 하는 데이터를 담고 있다

패킷 전달

클라이언트에서 패킷을 전달하면 목적지 IP로 다양한 노드들을 통해 도달하게 된다
서버가 정상적으로 패킷을 받게 된다면, 서버에서 제대로 받았는지에 대한 패킷을 통과한 노드의 역순으로 전달하여 오류 여부를 확인한다

IP의 한계

비 연결성

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

비 신뢰성

  • 중간에 패킷이 사라지거나 패킷의 용량이 클때 분할해서 보낸 순서가 섞여서 되 돌아 오는 경우

프로그램 구분

  • 같은 IP를 사용하는 서버에서 통신하는 어플리케이션이 둘 이상일 경우

TCP

전송 제어 프로토콜 (Transmission Control Protocol)의 약자로 세 가지 특징이 있으며, 신뢰할 수 있는 프로토콜이기에 현재 대부분 TCP를 사용한다

1. TCP 3 way handshake (가상 연결)

클라이언트와 서버의 연결 과정
클라이언트 ---SYN---> 서버
클라이언트 <---SYN+ACK--- 서버
클라이언트 ---ACK---> 서버
클라이언트 ---데이터---> 서버

SYC : 접속 요청
ACK : 요청 수락

※ 클라이언트가 서버에 ACK 전송시, 데이터도 같이 전송 가능함

2. 데이터 전달 보증

  • 서버가 회신을 통해 데이터를 정상적으로 받음을 알림

3. 순서 보장

  • 용량이 큰 패킷을 분할 전송시 순서가 바뀌어 도착했다면 서버에서 알림을 보냄

UDP

사용자 데이터그램 프로토콜(User Datagram Protocol)의 약자로 IP의 상위호환, TCP의 하위호환으로 볼 수 있다.

IP에서 port와 체크섬 기능이 추가된 정도이며 TCP의 3가지 기능은 없음

TCP는 용량이 크기에 최적화에 한계가 있지만, UDP는 기능이 부족한 대신 단순하고 빠르다는 특징이 있음

Port

클라이언트가 한번에 둘 이상의 서버와 연결시 필요한 기능
예를 들어, 클라이언트가 둘 이상의 데이터를 보낼때, 각 데이터가 어느 서버에 매칭되는지를 알려주는 것 이라고 생각하면 된다

DNS

서버의 IP가 변경됐을 경우, 접근에 오류가 생길 것을 방지하기 위해
전화번호부 형태로 만들어진 기능

예시로
www.google.com - 200.200.200.2
www.naver.com - 300.300.300.3

  • 위와 같을경우, IP가 변경되도 전화번호부 상의 IP를 업데이트를 해준다면
    클라이언트는 DNS로만 접근하기 때문에 오류 없이 접근이 가능하다

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

1. 어플리케이션 계층

HTTP, FTP
ex) 웹브라우저, 게임, 채팅 프로그램 등

2. 전송 계층

TCP, UDP

3. 인터넷 계층

IP

4. 네트워크 인터페이스 계층

LAN 드라이버, LAN 장비

메세지의 전송 과정

  1. 프로그램이 메세지를 생성
  2. Socket 라이브러리를 통해 전달
  3. 메세지 데이터를 포함한 TCP 정보 생성
  4. TCP 데이터를 포함한 IP 패킷을 생성
  5. 랜카드를 통해 서버로 전달
profile
work0ut

0개의 댓글