❤️ 인터넷 네트워크
📝 인터넷 통신
인터넷에서 컴퓨터 둘은 어떻게 통신할까?
- 클라이언트와 서버가 가까이 있을 경우 케이블로 통신이 가능하지만, 그 반대의 경우 클라이언트와 서버 사이에 있는 복잡한 인터넷 망을 통해 메시지를 전달할 수 있다.
- 인터넷 망의 수많은 중간 노드를 거쳐야 한다. -> 어떤 규칙?
📝 IP(인터넷 프로토콜)
IP 주소 부여
클라이언트와 전달하려는 서버에 IP주소가 부여 되어야 한다
![](https://velog.velcdn.com/images/judyan/post/28636d50-4095-4fe3-b742-36524aa26de6/image.png)
역할
- 지정한 IP주소에 데이터 전달
- 패킷(Paket)이라는 통신 단위로 데이터 전달
IP 패킷
- 전송 데이터와 함께 출발지IP, 목적지IP 등을 묶어 패킷으로 만든 후 전달
![](https://velog.velcdn.com/images/judyan/post/38bb8930-8c23-4ee7-8cdf-95f16b43071a/image.png)
- 클라이언트 패킷 전달
![](https://velog.velcdn.com/images/judyan/post/741570cc-60cb-49b8-ac27-d46b5ab3f1b1/image.png)
- 서버 패킷 전달
![](https://velog.velcdn.com/images/judyan/post/2310f769-653e-41b0-aacb-6fe4579566a4/image.png)
IP 프로토콜의 한계
- 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 -> 클라이언트에서는 알 수 없음
- 비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않을 경우 해결 불가능
- 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우 구분할 수 없음
📝 TCP, UDP
IP 프로토콜의 한계를 해결해주는 프로토콜
인터넷 프로토콜 스택의 4계층
-> TCP, UDP : IP프로토콜 위에서 보완해준다
프로토콜![](https://velog.velcdn.com/images/judyan/post/91f921da-682a-4573-be04-ac737e266df1/image.png)
TCP/IP패킷 정보
- IP패킷안에 출발지PORT, 목적지PORT, 전송 제어, 순서, 검증 정보 등의 정보가 들어간다.
![](https://velog.velcdn.com/images/judyan/post/87be2d84-c617-4d23-8522-7c37c2925c8a/image.png)
TCP 특징 : 전송 제어 프로토콜(Transmission Control Protocol)
UDP 특징 : 사용자 데이터그램 프로토콜(User Datagram Protocol)
- 하얀 도화지에 비유(기능이 거의 없음)
- 연결지향 - TCP 3 way handshake X
- 데이터 전달 보증 X
- 순서 보장 X
- 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
- 정리
- IP와 거의 같다 + PORT + 체크섬 정도만 추가
- 애플리케이션에서 추가 작업 필요
PORT : 패킷을 구분
체크섬 : 메시지를 검증
📝 PORT
같은 IP 내에서 프로세스 구분
![](https://velog.velcdn.com/images/judyan/post/c2c34887-28ab-4ceb-b775-e5e1df4d2918/image.png)
0 ~ 65535
: 할당 가능
0 ~ 1023
: 잘 알려진 포트, 사용하지 않는 것이 좋음
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
📝 DNS
도메인 네임 시스템(Domain Name System)
- IP는 기억하기 어렵고 바뀔 수 있기 때문에 DNS 서버가 존재
- 전화번호부같은 서버 제공
- 도메인 명을 IP 주소로 변환
![](https://velog.velcdn.com/images/judyan/post/7c4108da-e165-42ab-82fc-9f3b0f5b0bf2/image.png)
출처 - 인프런 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의