인터넷 네트워크
- 인터넷 통신
요청을 보내는 클라이언트와 요청을 받고 다시 응답하는 서버라는 두 컴퓨터가 있다고 가정 할 때 두 컴퓨터가 붙어있다면 케이블로 연결해서 전송하고 응답하면 된다
하지만 만약 두 컴퓨터가 멀리 떨어져 있다면 중간에 인터넷이 존재하는데 인터넷에 수많은 망들 중 어떻게 해야 요청을 서버라는 컴퓨터에 전달할 수 있을까
이를 위해서는 IP(인터넷 프로토콜) 에 대한 이해가 필요하다
IP의 역할
- 지정한 IP 주소에 데이터 전달
- 패킷 이라는 통신 단위로 데이터 전달
메세지를 그냥 보내는 것이 아니라 IP 패킷에 담아서 보낸다
IP 패킷에는 출발 IP와 목적지 IP 주소가 포함되어 있다
IP 프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송(즉 쉽게 컴퓨터가 꺼져도 패킷은 전송함)
- 비 신뢰성패킷이 순서대로 안 올 수 있음
- 중간에 패킷이 사라질 수 있음
- 프로그램 구분
같은 IP를 사용하는 서버에서 작동되는 애플리케이션이 2개 이상이라면?
인터넷 프로토콜 스택의 4계층
- 애플리케이션 계층 - HTTP, FTP
- 전송 계층 - TCP(IP를 보안) , UDP
- 인터넷 계층 - IP
- 네트워크 인터페이스 계층
IP 패킷 정보에는 출발지 IP, 목적지 IP가 포함되어 있다
패킷은 Package + Bucket이다
TCP 에는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보가 들어간다
TCP(전송 제어 프로토콜) 특징
- 연결 지향 - TCP 3 way handshake(가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- TCP 3 way handshake 란
- 클라이언트가 SYN(접속 요청) 보냄
- 서버에서 SYN+ACK(요청 수락)
- 클라이언트가 ACK를 보냄
이런 과정이 실제 연결 되는 것이 아니라 논리적인 연결임
- 데이터 전달 보증
- 클라이언트가 데이터를 보내면 서버가 잘 받았다는 응답을 보냄
UDP의 특징
- 기능 없음
- 데이터 전달 보증 X
- 순서 보장 X
- 거의 IP랑 같지만 PORT가 추가된다
- 그러나 단순하고 빠름
PORT란?
클라이언트에서 여러 프로그램이 실행될 때 프로그램 별로 서버와 패킷을 주고 받는 곳을 구분할 수 있게 해주는 역할
쉽게 말해 IP 는 아파트의 ~동 PORT는 그 동의 ~호
DNS(도메인 네임 시스템)란?
IP 는 기억하기 어렵고 변경될 수 있다
쉽게 말해 DNS는 전화번호부
DNS 서버에 도메인을 등록하고 해당 IP를 받을 수 있다
'CS 공부' 카테고리의 다른 글
RESTful API란? (0) | 2023.01.30 |
---|---|
CI / CD란? (1) | 2023.01.30 |
HTTP 상태 코드(4xx, 5xx) (0) | 2023.01.27 |
HTTP 상태 코드 소개(2xx, 3xx) (0) | 2023.01.27 |
URI 와 웹 브라우저 요청 흐름 (0) | 2023.01.26 |