협업 및 기타 툴 정보/HTTP

인터넷 네트워크

만능 엔터테이너 2024. 11. 16. 23:33
728x90
반응형
SMALL

목차

1. 인터넷 통신

2. IP(Internet Protocol)

3. TCP, UDP

4. PORT

5. DNS


인터넷 통신

인터넷에서 2개의 컴퓨터는 어떻게 통신할까?

 

Just 클라이언트와 서버 간 메세지 전달하는 형식

 

만약, 전달하려는 경로가 너무 먼 경우에는 어떨까?

 

인터넷은 복잡하게 구성이 되어 있어 인공위성으로 전달될지, 노드로 전달될지, 광케이블로 전달될지 다양한 경로가 존재하기에 어떻게 전달되는지 모름


IP(인터넷 프로토콜)

 

수신자와 송신자 간의 거리가 지나치게 먼 경우, 최소한의 규칙이 필요! => 그것이 바로 IP주소로 가능해짐

 

IP(인터넷 프로토콜)의 역할

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

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

 

<클라이언트 패킷 전달>

 

1. 출발지 ip와 목적지 ip를 적어서 ip 패킷을 만듦

2. 노드끼리 목적지의 노드 번호가 200.200.200.2인 노드를 서로 던져가면서 최종 전달

 

<서버 패킷 전달>

 

수신자가 패킷을 전달 받으면 클라이언트에게 제대로 전송 받을 때의 출발지에게 전달 확인 신호를 보냄 

 

But, 잘못 전달될 수 있음

 

[IP 프로토콜의 한계]

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

2. 비신뢰성 : (1) 중간에 패킷이 사라지면?  / (2) 패킷이 순서대로 오지 않으면?

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


{전달에 문제가 되는 상황}

1. 클라이언트는 대상 서버가 IP 패킷을 받을 수 있는지 상태인지 모름

 

2. 패킷은 여러 서버를 거쳐서 패킷이 전달됨, 만약 중간에 서버가 꺼졌을 경우에는 패킷이 소실되어도 모름

 

3. 메세지의 크기가 크면 메세지를 분할하여 보내게 되는데, 이럴 경우에 패킷들의 전달 순서가 뒤바뀌는 경우가 생겨서 패킷이 전달되다가 중간에 다른 노드를 탈 수 있음, 최종적으로 world가 먼저 도착하고 hello가 나중에 도착 (나의 의도는 Hello world!)

 

=> 이러한 문제를 해결해주는 방식이 바로 TCP/UDP


TCP / UDP

애플리케이션 - os - 네트워크 인터페이스 구조로 큰 틀이 이루어져있음!

 

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

1. 연결지향 - TCP 3 way handshake (가상 연결) : 송신자와 수신자 사이의 연결되는 환경 구축 보장

2. 데이터 전달 보증 : 중간에 패캣이 누락되었든지 등 패킷이 전달받았는지 알 수 있음

3. 순서 보장 : 패킷의 순서를 보장해줌

4. 신뢰할 수 있는 프로토콜 => 그렇기에, 현재는 대부분 TCP 사용

SYN(접속 요청) -> SYN + ACK(접속 요청 + 요청 수락) -> ACK (3 way handshake 방식으로 연결 보장)

패킷이 크기가 너무 커서 패킷을 순서대로 잘라서 서버에 전송, 이때 패킷의 순서를 보장하여 보냄 -> 순서가 다를 경우에는 서버가 클라이언트에게 순서대로 다시 보내라고 응답을 전송함


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

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

1. 연결지향 - TCP 3 way handshake X

2. 데이터 전달 보증 X

3. 순서 보장 X

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

 

=> 즉, IP와 거의 유사함 + PORT + 체크섬 정도만 추가 (애플리케이션에서 추가 작업이 필요)


PORT

1개의 PC에 여러 개의 프로그램을 실행 중이면 한 번에 클라이어트 PC과 여러 개의 서버와 통신을 해야 함

-> 이때, 패킷이 게임,화상통화,웹 브라우저 요청인지 구분이 불가능함!

즉, PORT는 같은 IP 내에서 프로세스를 구분하여 올바른 포트 번호로 전달이 되도록 하는 역할


DNS

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

- 전화번호부

- 도메인 명을 IP 주소로 변환

DNS로는 (1) 기억하기 어려운 문제 (2) IP가 변경될 수 있는 문제 => 2개의 문제를 해결할 수 있음

728x90
반응형
LIST

'협업 및 기타 툴 정보 > HTTP' 카테고리의 다른 글

HTTP 메서드  (0) 2024.11.17
HTTP 기본  (0) 2024.11.17
URI와 웹 브라우저 요청 흐름  (0) 2024.11.17