[네트워크] IP, TCP, UDP

2023. 10. 9. 19:01·CS/네트워크
728x90
반응형

클래스

  • 클래스 주소 지정 방법을 선택
  • 전치부와 후치부의 두 부분으로 구성
  • 전치부 : 네트워크에 할당된 주소
  • 후치부 : 호스트 또는 단말에 할당된 주소
  • 네트워크 ID의 범위가 커지면 호스트 ID의 범위가 작아진다. 

클래스 범위

Class A (0 ~ 127)

  • 첫 7개의 비트가 네트워크 식별자가 된다.
  • 동일 네트워크에 3바이트의 호스트를 가질 수 있다.

 Class B (128 ~ 191)

  • 첫 14개 비트가 네트워크 식별자가 된다.
  • 동일 네트워크에 2바이트의 호스트를 가질 수 있다.

 Class C (192 ~ 223)

  • 한 네트워크에 254개의 호스트를 가질 수 있다.

 Class D (224 ~ 239)

  • 멀티캐스트 주소로 사용되는 주소 영역

Class E (240 ~ 255)

  • 라우터 간 경로 설정 등의 제어를 위해 사용되는 주소 

특수한 IP 주소

모두 0인 주소

  • 아직 어떠한 주소도 할당 받지 못한 상태로, 새로운 주소를 할당 받기 위한 용도로 사용된다.

모두 1인 주소

  • 또는 마지막 8비트가 모두 1인 주소
  • 동일 네트워크에 존재하는 모든 호스트 장치들에게 일괄적으로 패킷을 전달하기 위해 사용
  • 브로드캐스트 전송을 위해 사용
  • 브로드캐스트 주소라고 한다.

루프백 주소

  • A클래스의 범위 중 가장 크 값인 127로 시작되는 주소
  • 호스트 컴퓨터 내부의 프로세스 간 통신(IPC)을 위해 사용
  • 운영체제는 전치부 값을 통해 특정 프로세스에서 생성한 패킷이 외부로 전달되는 것을 차단
  • 네트워크 장치로 전혀 전달되지 않는다.
  • 송신된 패킷은 운영체제가 관리하는 주기억장치의 특별한 공간에 기록

IP 사설 주소

  • 인터넷에서 호스트를 구분하기 위한 전용의 IP주소가 아닌 사적인 용도를 위해 허용되는 IP주소
  • 동일 사설 주소를 사용하는 네트워크 외부로는 전달되지 않는다.
  • 라우터의 설정에 따라 사설주소의 값이 공인 IP주소로 변환되어 외부로 나갈 수 있다.

 

  • 클래스 A : 10.0.0.0 ~ 10.255.255.255
  • 클래스 B : 172.16.0.0 ~ 172.31.255.255
  • 클래스 C : 192.168.0.0 ~ 192.168.255.255 

NAT

  • 공인 IP주소에 대하여 다수의 호스트들이 공유하여 인터넷에 접근하기 위한 기술
  • NAT를 수행하는 장치는 공인 IP주소를 갖고 라우터의 역할을 수행
  • NAT 하단의 네트워크를 사설 네트워크라고 한다.
  • 사설 네트워크에서는 사설 IP주소를 통해 호스트들의 장치들이 식별된다.
  • 사설 IP주소와 공인 IP주소 간 변환을 위해서 NAT 장치는 일반적으로 제4계층의 포트 번호를 호라용하여 정보를 매핑한다.

Sub Network

  • 네트워크를 조금 더 작은 단위로 분활
  • 세분화 개념을 적용
  • 서브넷을 적용하면 기존 IP주소 클래스 체계를 세분화 하기 위해 서브넷을 추가하여 3단계로 구성

VPN

  • 가상 사설 네트워크
  • 인터넷으로 연결된 다른 장소에서 단말이 사설 네트워크에 접속하여 그 구성원이 될 수 있도록 하는 기술
  • 네트워크 영역의 물리적인 공간을 극복하기 위한 기술

장점

  • 외부로부터 허가 받지 않은 단말의 사설 네트워크 접근을 차단
  • 물리적 공간에 대한 영역 제한을 극복
  • 접속 우회
  • 보안성 향상 

단점

  • VPN기능은 서버에 의해 접속 및 데이터 중계가 수행된다.
  • 동작 과정들이 로그로 기록될 수 있다.
  • 광고 등 불필요한 정보가 전달될 수 있다.
  • 해커 등에 의한 VPN의 악용

TCP

  • 종단 간의 연결을 설정한 후 데이터를 스트림 형태로 전송
  • 연속하는 스트림 데이터의 특성
  • 연결형 프로토콜
  • 신뢰성 보장
  • 응용 프로그램 간에 메시지를 전달
  • 데이터 단위 : 세그먼트
  • 흐름 제어 방식 Slow-Start 알고리즘 사용

클라이언트와 서버

  • TCP는 클라이언트와 서버의 관계로 동작
  • 클라이언트 : 서비스를 요청, 서버에 접속을 요청
  • 서버 : 서비스를 제공, 클라이언트 접속을 수락하기 위한 대기 상태 진입
  • 서버 기능을 수행하는 프로세스를 데몬 또는 서비스 라고도 한다. 

연결 설정

  • 3단계 메시지 교환 방식을 사용
  • TCP 세그먼트 헤더의 SYN와 ACK 필드를 활용
  • 연결을 위해 최소 1.5 x RTT(Round Trip Time)가 소요 

연결 해제

  • 3단계 메시지 교환 방식을 사용
  • 연결을 위해 최소 1.5 x RTT(Round Trip Time)가 소요
  • 상대 측이 연결을 종료할 때까지 기다린 후에 자신도 종료하는 대기 과정이 필요
  • 접속 해제를 요청한 쪽은 전송한 ACK 세그먼트가 버려지기 이전에 네트워크에 남아 있을 수 있는 최대시간의 2배를 대기 시간으로 설정

신뢰성 제공

  • 전달되는 세그먼트에 일련번호를 사용
  • 세그먼트의 값을 통한 누락 해결, 순서 교정 및 중복 세그먼트 방지
  • 수신 세그먼트에 대한 ACK 또는 NAK 회신

흐름 제어

  • 네트워크의 상태에 따라 적당한 크기의 세그먼트를 전송
  • ARQ 기법을 사용

TCP 세그먼트 구조

전송 포트

  • 운영체제내 송신 프로세스의 주소
  • 응용프로그램을 식별하기 위해 운영체제에 의해 동적인 번호로 할당됨 

수신 포트

  • 수신 프로세스의 주소
  • 수신 포트는 서버 구동 시 할당됨

순서 번호

  • TCP 세그먼트의 일련번호
  • 일련번호는 세그먼트 별 1씩 증가
  • 세그먼트의 누락 해결, 순서 교정 및 중복 세그먼트 방지용

ACK 번호

  • 다음번에 수신 될 것으로 예상되는 세그먼트의 번호

헤더 길이

  • 이 값을 통해 세그먼트내 데이터(SDU)의 시작 위치를 알 수 있음

예약

  • Not Used
  • 미래를 위해 남겨놓은 영역
  • 현재까지 사용되지 않고 있음

플래그 비트

  • 회선, 데이터의 관리와 제어 기능 등을 수행하는 영역
  • 6개의 비트 플래그를 포함 

윈도우 크기

  • 흐름제어를 위해 사용하는 16비트 영역
  • 송신지에 수신지의 버퍼 여유 크기를 지속적으로 통보

체크섬

  • 오류 검출

긴급 포인터

  • URG 플래그가 설정된 경우 긴급 포인터 영역
  • 응급 데이터의 위치 

옵션

  • 다양한 확장 기능과 관련된 영역
  • 옵션에 따라 TCP 헤더의 크기가 변함

UDP

  • User Datagram Protocol
  • 두 종단 간에 연결을 설정하지 않고 데이터를 교환
  • 오버헤드의 크기가 작다.
  • 송신 측이 데이터가 제대로 도착 했는지 확인하지 않는다. 

ICMP

  • Internet Control Message Protocol
  • IP에서 발생하는 문제를 처리하기 위한 프로토콜
  • 오류 보고, 상황 보고, 경로를 제어하는 정보 전달 기능 등이 있음

감사합니다.


틀린 부분이 있거나 더 좋은 내용 훈수 환영합니다!

공감과 댓글 부탁드립니다.

728x90
반응형

'CS > 네트워크' 카테고리의 다른 글

[네트워크] LAN의 개요(2)  (0) 2023.10.15
[네트워크] LAN의 개요(1)  (0) 2023.10.14
[네트워크] Internet Protocol  (0) 2023.10.07
[네트워크] TCP/IP 계층 구조  (0) 2023.10.06
[네트워크] 데이터 링크 계층과 주요 기능  (2) 2023.10.04
'CS/네트워크' 카테고리의 다른 글
  • [네트워크] LAN의 개요(2)
  • [네트워크] LAN의 개요(1)
  • [네트워크] Internet Protocol
  • [네트워크] TCP/IP 계층 구조
P_Piano
P_Piano
Apple 생태계 개발자가 되기 위한 학습과 경험의 기록
    반응형
    250x250
  • P_Piano
    피피아노의 개발 일지
    P_Piano
  • 전체
    오늘
    어제
    • 분류 전체보기 (203)
      • Apple (121)
        • iOS (22)
        • visionOS (4)
        • Swift (65)
        • UIKit (2)
        • SwiftUI (22)
        • RxSwift (2)
        • Xcode (4)
      • C언어 (5)
      • C++ (8)
      • Dart (1)
      • Python (3)
      • JavaScript (17)
      • Git (1)
      • CS (39)
        • 디자인 패턴 (6)
        • 네트워크 (20)
        • 운영체제 (8)
        • Database (5)
        • 자료구조 (0)
      • IT 지식 (2)
      • IT 뉴스 (4)
      • 출처 표기 (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    오블완
    UIKit
    변수
    SWIFT
    연산자
    combine
    제어문
    티스토리챌린지
    운영체제
    프로퍼티 래퍼
    코딩테스트
    swiftUI
    ios
    자바스크립트
    Vision Pro
    클래스
    네트워크
    프로세스
    옵셔널
    visionOS
    스위프트
    함수
    Xcode
    비동기
    Optional
    Initializers
    메서드
    디자인패턴
    배열
    이니셜라이저
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
P_Piano
[네트워크] IP, TCP, UDP
상단으로

티스토리툴바