boostcamp

Day18 학습정리

daykim 2023. 8. 2. 14:09

HTTP Request와 Response


TCP/IP


 

소켓

  • IP 주소, 포트 번호, 통신 동작이 어떤 진행상태인지 등을 기록한 메모리 영역이다.
  • 프로토콜 스택이 소켓에 기록된 제어 정보를 참조해, 다음에 무엇을 할지 판단할 수 있도록 한다.

 

데이터 송수신 동작

  1. 소켓을 만든다.
  2. 서버 측의 소켓에 파이프를 연결한다.
  3. 데이터를 송수신한다.
  4. 파이프를 분리하고, 소켓을 말소한다.

 

웹 브라우저, 메일 서버 등의 프로그램이다.
애플리케이션에서 보낸 의뢰를 받아 데이터 송수신을 담당한다.

- TCP, UDP를 사용해 데이터를 송수신한다.
- IP : 패킷 송수신 동작을 제어한다.
LAN 어댑터의 하드웨어를 제어한다.
실제 송수신 동작 즉, 케이블에 대해 신호를 송수신하는 동작을 실행한다.

 

TCP / IP

TCP와 IP를 합쳐 부르는 말이다.

 

TCP (Transmission Control Protocol)

근거리 통신망이나 인트라넷, 인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 한다.

  • 연결 지향형 프로토
  • 전송계층 (Transport Layer, 4계층)에 위치한다.
  • 통신하려는 양쪽 단말이 통신할 준비가 되었는지, 데이터가 제대로 전송되었는지, 데이터가 동중 변질되지는 않았는지, 수신자가 얼마나 받았고 빠진 부분은 없는지 등 점검한다.
  • 즉, 신뢰성 보장, 흐름 제어, 혼잡 제어를 한다.
  • 3-way handshake : 신뢰성 있는 통신
  • 흐름 제어 : window size 송수신측의 데이터 속도 차이를 조절해준다.
  • 혼잡 제어 : slow start 네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지한다.

 

IP (Internet Protocol)

한 endpoint가 다른 endpoint로 갈 때, 경로와 목적지를 찾아준다. (Routing)

  • 3계층
  • 네트워크 계층에서 통신하는 주요 프로토콜이다.

 

 

UDP (User Datagram Protocol)

다른 절차를 거치지 않고, 송신측에서 일방적으로 데이터를 전달하는 통신 프로토콜이다.

  • 데이터를 모두에게 보낸 후, 수신측에서 수신 확인을 받는 방법이다.
  • TCP와 다르게 연결 설정이 없는, 비연결형 프로토콜이다.
  • 혼잡 제어를 하지 않아 TCP 보다 전송속도가 빠르지만, 데이터 전송에 대한 보장을 하지 않아 패킷 손실이 있을 수 있다.
  • 데이터가 한 개의 패킷에 수용할 수 있을만큼 길이가 짧은 경우 사용한다. 한 개의 패킷만 전송할 경우, TCP 처럼 복잡한 방법을 사용할 필요가 없다.
  • ex) DNS 서버에 대한 조

 

Web Socket

웹에서 데이터를 주고받을 때, HTTP를 사용한다.
하지만, HTTP는 요청이 있어야만 응답을 보장해주기 때문에, 실시간을 보장하지 않는다.

  • 폴링, 롱폴링 방식이 있지만, 불필요한 HTTP 요청과 응답이 늘어나 서버와 네트워크 부하가 커진다.

그래서 웹 소켓이 발전해, 한 번의 요청으로 서버와 네트워크가 실시간으로 데이터를 주고받을 수 있게 되었다.

 

 

Echo Server


Echo Server

에코라는 말 그대로, Client가 전송한 데이터를 그대로 되돌려 전송해주는 기능을 가진 서버다.

  • 에코 서버 클라이언트 모델은 몇 바이트를 송수신할 것인지 예상할 수 있다.
  • 전송한 만큼 바이트를 되돌려 받기 때문이다.

 

 

 

Client와 Server


 

 

JSON


 

 

 

 

 

참고자료

'boostcamp' 카테고리의 다른 글

Day16 학습 정리  (0) 2023.07.31
Day13 학습정리  (0) 2023.07.26
Day11 학습 정리  (0) 2023.07.24
Day09 학습 정리  (0) 2023.07.20
Day08 학습 정리  (0) 2023.07.19