wonya.dev@gmail.com
워냐의 개발일기
wonya.dev@gmail.com
전체 방문자
오늘
어제
  • 개발일기장 (16)
    • OS (1)
    • HTTP (2)
    • Java (0)
    • Spring (0)
    • DB (0)
    • Vue.js (5)
    • React (2)
    • Elasticsearch (5)
    • 일상다반사 (0)
    • Intellij 설정 (1)

인기 글

최근 글

티스토리

태그

  • elastic mapping
  • 뷰js
  • 엘라스틱 index
  • nodejs
  • 엘라스틱 수동맵핑
  • 노드제이에스
  • elasticsearch insert
  • 엘라스틱서치 맵핑
  • 엘라스틱 insert
  • elasticsearch mapping
  • Elastic
  • Vue.js
  • node.js
  • 노드JS
  • 엘라스틱서치
  • vuejs
  • 엘라스틱 맵핑
  • 뷰제이에스
  • 엘라스틱 테이블
  • elasticsearch
hELLO · Designed By 정상우.
wonya.dev@gmail.com

워냐의 개발일기

네트워크 개념 정리(TCP/UDP/IP/DNS/URL)
HTTP

네트워크 개념 정리(TCP/UDP/IP/DNS/URL)

2022. 1. 13. 23:41

Protocol

  • 통신 장비간의 데이터 전송 규약

 

IP(Internet Protocol)

  •   
  • IP를 기준으로 전송하고 패킷이라는 단위로 정보를 주고 받음.
  • 한계
    • 패킷을 받을 상대가 없어도 전송
    • 내 컴퓨터에서 2개 이상의 어플리케이션이 실행시 도착지를 찾을수 없다.
    • 전송 도중 소실되어도 알 수 없음.
    • 패킷의 사이즈가 클 경우 둘로 나누어 지고 도착 순서 보장이 없다.
  • ※NAT : IP 의 개수 부족으로 나온 기술로, 사설IP -> 공인IP / 공인IP -> 사설IP 로 변경해주는 기능

 

TCP/UDP(Tranmission Control Protocol/User Datagram Protocol)

  • 위에서 언급한 IP 의 한계를 보완하기 위해 나온 프로토콜로 IP와 함께 사용되어진다.
  •  
    TCP/IP 4 Layer
  • 클라이언트에서 서버로 요청시 Application -> Transport -> Internet -> Link 순을 타고 나간다.
  • Application : Socket 라이브러리를 이용해서 해당 데이터를 생성한다.
  • Transport(TCP/UDP) : Port 정보 등을 셋팅
  • Internet : IP, Flag(패킷분할여부), Protocol 정보 등을 셋팅
  • Link(Network Interface) : 우리가 사용하는 Link 계층의 대부분은 Ethernet 을 사용하며 MAC 주소를 셋팅한다.

TCP

  • TCP 의 경우 데이터 전송전에 3 way handshake 를 통해 논리적인 연결을 생성후 데이터를 전송하기 때문에 신뢰성이 보장된다.
    •  
  • TCP 프로토콜의 Sequence Number 를 통해 패킷의 순서를 알 수 있다.
  • TCP 프로토콜의 Port 정보를 통해 하나의 컴퓨터에서 여러개의 어플리케이션의 도착지를 컨트롤 할 수 있다.

UDP

  • TCP 처럼 신뢰성이 없고, 일방향 통신이다. 대신에 빠르다는 장점이 있다.
  • IP 에서 Port, checksum 정보만 추가되어 어플리에이션에서 추가 작업이 필요하다.
  • 최근 HTTP3 버전에서 각광받고 있다. 

 

DNS(Domain Name System)

  • naver.com 검색시 IP 와 matching 시켜주는 서비스
  • IP 는 변경될 수 있기 때문에 대부분의 플랫폼 서비스들은 도메인명으로 서비스한다.
  • AWS에서 잘 설명해주는 글이 있어 참조했다. https://aws.amazon.com/ko/route53/what-is-dns/
  •  

    DNS란 무엇입니까? – DNS 소개 - AWS

    12개월 동안 AWS 프리 티어에 액세스하고 연중무휴 24시간 고객 서비스, 지원 포럼 등을 비롯한 AWS Basic Support의 기능을 사용할 수 있습니다. 현재 Amazon Route 53는 AWS 프리 티어에서 제공되지 않는다

    aws.amazon.com

  • nslookup 이라는 DNS 서버 질의 명령어를 통해 해당 사이트의 IP를 알 수 있고 IP 주소를 브라우저에 입력시 동일하게 접속이 가능하다.

 

URL(Uniform Resource Locator)

  • 상위 개념으로 URI(Identifier) 라고 많이들 부르는데 본인은 URI = URL 이라고 생각한다.
  • URN(Uniform Resource Name) 도 있는데 urn:animal:omnivore:pig 이런식으로 사용한다.

 

웹 브라우저 상에서 데이터 흐름

  1. https://search.naver.com/search.naver?where=nexearch&sm=top_hty&fbm=1&ie=utf8&query=hello 요청
  2. 브라우저가 DNS 질의 --> IP 정보를 찾아옴
  3. 브라우저가 HTTP 요청 메시지 생성
  4. SOCKET 라이브러리 통해 --> 3way handshake --> TCP 계층으로 던지고 패킷 완성하여 전송
  5. Server 에서 패킷을 받고 --> 데이터 파싱 후 처리 --> response 패킷 만들고 재전송

'HTTP' 카테고리의 다른 글

HTTP 란?  (0) 2022.01.16
    'HTTP' 카테고리의 다른 글
    • HTTP 란?
    wonya.dev@gmail.com
    wonya.dev@gmail.com
    나는 개발자다.

    티스토리툴바