<인터넷 네트워크> IP, TCP, UDP, DNS 정리

2023. 1. 12. 22:16·CS 공부

인터넷 네트워크

  • 인터넷 통신

    요청을 보내는 클라이언트와 요청을 받고 다시 응답하는 서버라는 두 컴퓨터가 있다고 가정 할 때 두 컴퓨터가 붙어있다면 케이블로 연결해서 전송하고 응답하면 된다

    하지만 만약 두 컴퓨터가 멀리 떨어져 있다면 중간에 인터넷이 존재하는데 인터넷에 수많은 망들 중 어떻게 해야 요청을 서버라는 컴퓨터에 전달할 수 있을까

이를 위해서는 IP(인터넷 프로토콜) 에 대한 이해가 필요하다

 

IP의 역할

  • 지정한 IP 주소에 데이터 전달
  • 패킷 이라는 통신 단위로 데이터 전달

메세지를 그냥 보내는 것이 아니라 IP 패킷에 담아서 보낸다

IP 패킷에는 출발 IP와 목적지 IP 주소가 포함되어 있다

 

IP 프로토콜의 한계

  • 비연결성
  • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송(즉 쉽게 컴퓨터가 꺼져도 패킷은 전송함)
  • 비 신뢰성패킷이 순서대로 안 올 수 있음
  • 중간에 패킷이 사라질 수 있음
  • 프로그램 구분
    같은 IP를 사용하는 서버에서 작동되는 애플리케이션이 2개 이상이라면?

 

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

  • 애플리케이션 계층 - HTTP, FTP
  • 전송 계층 - TCP(IP를 보안) , UDP
  • 인터넷 계층 - IP
  • 네트워크 인터페이스 계층

IP 패킷 정보에는 출발지 IP, 목적지 IP가 포함되어 있다

패킷은 Package + Bucket이다

TCP 에는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보가 들어간다

TCP(전송 제어 프로토콜) 특징

  • 연결 지향 - TCP 3 way handshake(가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜

 

  • TCP 3 way handshake 란
    1. 클라이언트가 SYN(접속 요청) 보냄
    2. 서버에서 SYN+ACK(요청 수락)
    3. 클라이언트가 ACK를 보냄

이런 과정이 실제 연결 되는 것이 아니라 논리적인 연결임

  • 데이터 전달 보증
  • 클라이언트가 데이터를 보내면 서버가 잘 받았다는 응답을 보냄

UDP의 특징

  • 기능 없음
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 거의 IP랑 같지만 PORT가 추가된다
  • 그러나 단순하고 빠름

PORT란?

클라이언트에서 여러 프로그램이 실행될 때 프로그램 별로 서버와 패킷을 주고 받는 곳을 구분할 수 있게 해주는 역할

쉽게 말해 IP 는 아파트의 ~동 PORT는 그 동의 ~호

 

 

DNS(도메인 네임 시스템)란?

 

IP 는 기억하기 어렵고 변경될 수 있다

쉽게 말해 DNS는 전화번호부

DNS 서버에 도메인을 등록하고 해당 IP를 받을 수 있다

'CS 공부' 카테고리의 다른 글

RESTful API란?  (0) 2023.01.30
CI / CD란?  (1) 2023.01.30
HTTP 상태 코드(4xx, 5xx)  (0) 2023.01.27
HTTP 상태 코드 소개(2xx, 3xx)  (0) 2023.01.27
URI 와 웹 브라우저 요청 흐름  (0) 2023.01.26
'CS 공부' 카테고리의 다른 글
  • CI / CD란?
  • HTTP 상태 코드(4xx, 5xx)
  • HTTP 상태 코드 소개(2xx, 3xx)
  • URI 와 웹 브라우저 요청 흐름
코딩숙
코딩숙
개발이라는 끝이 없는 바다 묵묵히 꾸준히 항해하기
  • 코딩숙
    코딩숙
    코딩숙
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • CS 공부 (17)
        • 클라우드 (3)
        • 네트워크 (3)
      • 개발 공부 (40)
        • 오류 해결 (4)
        • 알고리즘 (12)
        • Spring (3)
        • JPA (2)
        • TIL(오늘 내가 배운 것) (9)
        • 코드복습 (1)
        • 디자인 패턴 (1)
      • IT 관련 영상 메모 (1)
      • 데일리피드백 (0)
      • Tools (1)
      • Wishy (이력서 평가 프로젝트) (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    302 Found
    HTTP BODY
    도메인설계
    http
    setter method
    변수
    마이크로서비스
    innodb
    isAfter()
    java
    키 페어 분실
    user mode
    프로그래머스 네트워크 자바
    programmers #정수 내림차순으로 배치하기
    appsmith
    백준
    개발자
    데이터 타입
    JPA
    인프런
    키 페어 변경
    개발공부
    게임 맵 최단거리 자바
    getter method
    데이터베이스 백업
    데이터베이스 손상
    isBefore()
    자바
    404 Not Found
    프로그래머스
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
코딩숙
<인터넷 네트워크> IP, TCP, UDP, DNS 정리
상단으로

티스토리툴바