dev_beomgeun
꾸준하게 차근차근
dev_beomgeun
전체 방문자
오늘
어제
  • 분류 전체보기 (170)
    • 전공 (0)
      • 운영체제 (0)
      • 알고리즘 (0)
      • 자료구조 (0)
      • 데이터베이스 (0)
      • 네트워크 (0)
    • 개발 공부 (32)
      • 웹 (6)
      • 리눅스 (4)
      • 머신러닝 (1)
      • 스프링 (17)
      • Git (2)
      • AWS (2)
    • 개발 도서, 강의 (3)
      • 스프링 입문을 위한 자바 객체지향의 원리와 이해 (0)
      • 모든 개발자를 위한 HTTP 웹 기본 지식(김영한.. (2)
      • 스프링 부트와 AWS로 혼자 구현하는 웹서비스 (1)
    • 문제 풀이 (118)
      • 백준 알고리즘 (72)
      • 프로그래머스 알고리즘, SQL (38)
      • Hackerrank SQL (8)
    • 프로젝트 기록 (4)
      • 캡스톤 종합설계 (4)
      • 반려하루 프로젝트 (0)
    • 활동 기록 (12)
      • 네이버 부스트캠프 (7)
      • 취준 & 코테 (4)
      • 소프트웨어 마에스트로 13기 (1)
    • 이것저것 (1)

블로그 메뉴

  • 홈
  • 깃허브
  • 링크드인
  • 방명록

공지사항

인기 글

태그

  • 네이버 부스트캠프
  • Baekjoon
  • 스프링
  • 프로그래머스 SQL
  • 반성
  • dp
  • c++
  • HackerRank mysql
  • 서블릿
  • 백준
  • 그래프탐색
  • BFS
  • 기록
  • 백준 DP
  • 프로그래머스
  • AI Tech
  • 부스트캠프
  • 일기
  • 회고
  • Hackerrank

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dev_beomgeun

꾸준하게 차근차근

1. 인터넷 네트워크
개발 도서, 강의/모든 개발자를 위한 HTTP 웹 기본 지식(김영한)

1. 인터넷 네트워크

2021. 8. 23. 00:44
728x90

- 인프런 김영한 님의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 수강 후 정리한 내용입니다.

 


1. IP란

 - Internet Protocol로 인터넷에서 사용하는 프로토콜이다. 

 - 지정한 IP 주소로 데이터를 전달하고, 패킷이라는 통신 단위로 전달된다.

 

 

- 내 컴퓨터에서 상대 컴퓨터(서버)로 인터넷을 통해 통신할 때 패킷을 전달할 때 사용된다.

 - IP 프로토콜의 특징은 다음과 같다.

  1. 비연결성
    • 해당 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 패킷이 전송된다.
  2. 비신뢰성
    • 전달 도중 패킷이 손실될 수 있다.
    • 순서대로 패킷을 전송했지만 순서대로 도착하지 않을 수 있다.
  3. 프로그램 구분 불가
    • 포트 정보가 없기 때문에 해당 서버에서 여러 개의 어플리케이션 중 어떤 애플리케이션에 도달해야 할지 모른다.

 - 즉, 상대방의 서버의 상태와 관계없이 보내고, 도중에 패킷이 손실되는지, 전달이 잘 되었는지, 포트를 알고 있지 않기에 하나의 서버에서 돌 고 있는 여러 어플리케이션 중 어떤 어플리케이션으로 가야 하는지, 순서대로 전달이 되었는지 알 수 없다.


2. 인터넷 프로토콜 스택의 4 계층

 

 - 웹 어플리케이션 -> TCP/UDP -> IP -> 내부 네트워크

 

 

- 어플리케이션인 웹 브라우저에서 http 요청 메시지가 생성되고, TCP/IP로 포장되어 네트워크를 통해 전송된다.

- IP 패킷에는 출발지 IP, 목적지 IP, 기타 데이터가 포함되어 있다.

- TCP 패킷에는 출발지, 목적지 PORT 정보가 포함되고, 위 IP의 특징을 상쇄시켜주는 전송 제어, 순서, 검증 정보 등이 포함된다.


3. TCP/UDP란

 

TCP

- Transmission Control Protocol로 위의 IP 프로토콜의 단점을 막아준다.

  1. 연결 지향
    • 3 way handshake를 통해 상대방 서버와 나의 서버의 연결 상태를 확인한다.
    • syn -> syn+ack -> ack -> 데이터 전송
  2. 데이터 전달 보증
    • 데이터를 전송하면 잘 받았는지 확인을 할 수 있다.
  3. 순서 보장
    • 만약 패킷 1, 2, 3 순서대로 보냈는데 서버에서 1, 3, 2 순서로 받았다.
    • 그렇다면 서버에서 패킷 2번부터 다시 보내라! (예시) 이런 느낌으로 순서를 제어해준다.

 

 

- 3 way handshake으로 상대방과 나의 컴퓨터의 연결 상태를 알 수 있고(syn -> ack)

- 포트 정보가 있기 때문에 특정 어플리케이션에 도착할 수 있다.

- 패킷의 순서가 뒤바뀌어도 컨트롤해주고 패킷이 잘 전달되면 전달 완료도 알 수 있다.

- 따라서 신뢰할 수 있고, 대부분 TCP를 이용한다고 한다.


UDP

- UDP란 User Datagram Protocol로 TCP와 달리 기능이 별로 없다.

- 연결 지향 X, 데이터 전달 보증 X, 순서 보장 X

- 데이터의 전달 및 순서가 보장되진 않지만 TCP에 비해 빠르다.

- 따라서 TCP는 파일 전송과 같이 신뢰성이 중요한 서비스에 이용되고, UDP는 스트리밍과 같이 연속성이 더 중요한 서비스에 이용된다.


4. PORT

 

 - IP 주소를 통해 상대 서버로 접속, port를 통해 컴퓨터에서 운영 중인 프로세스 중 어떤 프로세스에 접근해야 하는지 알 수 있다. 즉, 같은 IP 내에서 프로세스를 구분한다.

- 포트는 TCP 패킷에 포함되어 있다.

- 보통 http는 80 포트, https는 443 포트를 이용한다.


5. DNS란

 

- Domain Name System로 도메인 주소와 IP주소를 매핑시켜주는 역할을 한다.

- IP 주소는 외우기도 힘들고, 변경될 수도 있다.

- 위의 번거로움을 막기 위해 우리가 자주 사용하는 도메인 명(naver.com, google.com 등)을 이용해서 URL을 검색할 수 있게 한다.

- 도메인을 검색하면 내 컴퓨터에서 DNS 서버로 접근해서 해당 도메인에 맞는 IP를 받은 뒤, 해당 IP를 이용해 상대의 서버 컴퓨터로 접근하는 것이다.

 

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'개발 도서, 강의 > 모든 개발자를 위한 HTTP 웹 기본 지식(김영한)' 카테고리의 다른 글

2. URI와 웹 브라우저 요청 흐름  (0) 2021.08.28
    '개발 도서, 강의/모든 개발자를 위한 HTTP 웹 기본 지식(김영한)' 카테고리의 다른 글
    • 2. URI와 웹 브라우저 요청 흐름
    dev_beomgeun
    dev_beomgeun
    백엔드 개발을 하며 얻은 지식과 경험을 공유합니다. 현재 카카오페이에서 백엔드 엔지니어로 일하고 있습니다.

    티스토리툴바