인터넷 네트워크

Gisele·2021년 3월 17일
0


모든 개발자를 위한 HTTP 웹 기본지식(김영한)를 보고 정리한 내용입니다
함께보기 - 모두의 네트워크 정리

복잡한 인터넷 망에서 데이터는 어떻게 안전하게 넘어갈 수 있나?

데이터 전달 순서


1. 프로그램이 'hello, world' 메시지 생성
2. socket 라이브러리를 통해 전달
3. TCP 정보생성(=TCP 세그먼트) + 메시지
4. IP 패킷생성 + TCP세그먼트 + 메시지
5. Ethernet frame생성 + 패킷 + TCP 세그먼트 + 메시지
(하위계층으로 내려오면서 캡슐화)
6. LAN 카드로 전기신호로 변환해 데이터 전달

IP

  • Internet Protocol
  • 네트워크 계층에서 동작하며 지정한 IP주소에 데이터를 전달한다
  • packet 단위
  • IP packet : 출발지 ip,목적지 ip,기타정보 + 메세지

한계

  • 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성:패킷 소실이나 패킷전달 순서가 안 맞을 가능성이 있음
  • 프로그램 구분 불가 :같은 ip를 사용하는 서버에서 통신하는 애플리케이션이 다를 때를 대응할 수 없음

DNS

  • Domain Name System
  • ip는 기억하기 어렵고 변경될 수 있음
  • 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었다. 특정 컴퓨터의 주소를 찾기 위해, 사람이 이해하기 쉬운 도메인 이름을 숫자로 된 식별 번호로 변환해 준다. 위키백과 - DNS

TCP/UDP

  • 전송제어 프로토콜
  • TCP segment : 출발지 port, 목적지 port, 전송 제어, 순서, 검증 정보, ...

특징

  • 연결지향
  • 데이터 전달 보증
  • 순서보장

TCP 3way handshake

  • 연결이 되었다는 것을 확립
  1. syn : 접속요청
  2. syn+ack : 요청 수락+접속요청
  3. ack : 수락
  4. 데이터 전송

UDP

  • IP와 거의 같은데 포트정보와 체크섬 정보가 더해짐
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠르다
  • 성능 최적화를 하고싶으면 UDP를 이용하면 되지만, 애플리케이션에서 추가 작업이 필요하다.
  • HTTP3.0에서 UDP를 사용해 최적화 시도. 최근 부각되는 추세.
    함께보기 - HTTP/3는 왜 UDP를 선택한 것일까?

PORT

  • TCP, UDP에 포트 정보가 들어간다
  • ip는 목적지의 서버 주소
  • port는 ip 안에서 돌아가는 애플리케이션. 같은 ip 내에서 프로세스를 구분한다.

웹 브라우저 요청 흐름

  1. uri 입력 -> DNS조회
  2. 웹 브라우저가 HTTP 메시지 생성
  3. SOCKET 라이브러리를 통해 전달
  4. TCP/IP 연결 및 패킷생성(ip,port)+HTTP 메시지 포함
  5. 요청 패킷 서버로 전달
  6. 서버에 요청 패킷 도착
  7. 서버에서 HTTP 응답 메시지 생성
  8. 클라이언트로 응답 패킷 도착
  9. 브라우저 HTML 렌더링

📑 reference

profile
한약은 거들뿐

0개의 댓글