HTTP

 

인터넷 네트워크

 

인터넷 통신이라고 함은? 클라이언트와 서버가 통신하는 것을 말한다..

 

클라이언트 <- 인터넷 -> 서버

 

중간 노드(서버)들을 거쳐서 데이터가 전달된다.

 

IP(인터넷 프로토콜)

데이터를 전달하려면 주소가 필요한데 그것이 IP이다.

 

IP주소를 통해 데이터를 전달한다.

패킷단위로 전송한다.

 

패킷에 출발지IP,목적지IP등이 저장된다.

클라이언트 -> 서버, 서버 -> 클라이언트

양쪽 다 모두 동일하다.


IP만 있을 때 문제점!

1. 비연결성

상대 주소가 있는 없든 보낸다.

대상 서버가 패킷을 받을 수 있는지 모른다.

 

2. 비신뢰성

패킷 전송 중 패킷이 사라질 때?

패킷의 용량이 클 때 패킷이 순서대로 안 갈 수 있다.

 

3. 프로그램 구분

여러 개 프로그램 구동


이 문제를 해결하기 위해

TCP\UDP를 사용된다.

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

4단계 형식으로 감싸 진다 

 

즉, IP 위에 TCP를 이용해 사용할 수 있게 한다고

생각하면 된다.

 

4단계 예제

ex) 채팅

socket(애플리케이션 계층)

 (socket(애플리케이션계층),TCP)

((socket(애플리케이션 계층), TCP), IP)

 

식으로 감싸서 전달한다.

 

TCP를 통해 IP에서 부족한 것을 채워준다.

 

IP : 출발지 IP, 목적지 IP

TCP : 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보

 

TCP 사용 이유

연결 지향 - 먼저 연결해보고 메시지를 보낸다.

물리적으로 연결된 게 아니라

논리적으로 연결되어 있다.

TCP 3 way handshake

  1. SYN (클라이언트-> 서버)
  2. SYN + ACK (서버 -> 클라이언트)
  3. ACK (클라이언트 -> 서버) 데이터도 함께 전송 가능

 

데이터 전달 보증 - 메시지 누락을 체크할 수 있다.

순서 보장

 

UDP - 기능이 거의 없다.

IP와 동일하지만 PORT가 추가되었다.

장점 속도가 빠르다.

 

최근엔 UDP를 많이 사용하려 한다.


PORT

 

PORT는 애플리케이션 하나에 하나씩 할당된다.

한 번에 둘 이상을 연결하기 위해 사용한다.

IP만 있다고 생각하면 패킷들을 분리할 방법이 없다.

 

IP는 서버를 찾고 PORT는 애플리케이션을 구분한다.


DNS(Domain Name System)

 

IP는 기억하기 어렵다.

또 IP는 변경될 수 있다.

 

도메인명으로 IP주소를 연결한다.

도메인명은 그대로있고 변경된 IP주소를 연결하면된다.

+ Recent posts