TCP/IP 4계층 모델

yg kim·2023년 10월 11일
0

공부하기

목록 보기
10/14

각 계층은 특정 계층이 변경되었을 때 다른 계층이 영향받지 않도록 설계됨

ex. TCP -> UDP 변경되더라도 인터넷 웹 브라우저를 다시 설치하는 것은 아님

애플리케이션 계층

  • FTP, SMTP, HTTP, SSH, DNS 등의 응용 프로그램이 사용되는 프로토콜 계층
  • 웹서비스, 이메일등 서비스를 실질적으로 사람들에게 제공하는 층

전송계층

  • 송신자와 수신자를 연결하는 통신 서비스를 제공
  • 연결자와 데이터 스트림 지원, 신뢰성, 흐름 제어를 제공
  • 애플리케이션과 인터넷 계층 사이의 데이터 전달시 중계 역할
  • TCP, UDP, QUIC
    • TCP
      • 패킷사이 순서 보장 / 연결 지향 프로토콜을 사용하여 신뢰성 구축 -> 가상회선 패킷 교환 방식 사용
      • 연결과정 (3웨이 핸드쉐이크 -> SYN단계, SYN+ACK단계, ACK단계)
      • 연결 해제 과정(4웨이 핸드쉐이크 -> FIN보내고 ACK, FIN 보내고 ACK 다시 받으면 해제 완료)
        -> 두번째 FIN 이후 TIME_WAIT 하는 이유? -> 지연 패킷 발생 대비, 두 장치가 연결이 닫혔는지 확인하기 위함
    • UDP - 순서 보장 X / 단순히 데이터만 넘겨줌.

인터넷 계층

  • 장치로부터 받은 네트워크 패킷을 IP주소로 지정된 목적지로 전송하기위해 사용되는 계층
  • IP, ARP, ICMP
  • 패킷을 수신해야 할 상대의 주소를 지정하여 데이터를 전달 ( 비연결형 )

링크계층(네트워크 접근 계층)

  • 실질적으로 데이터를 전달하며 장치간에 신호를 주고받는 '규칙'을 정하는 계층
  • 유선 LAN(IEEE802.3)
    • 유선 LAN을 이루는 이더넷은 IEEE802.3 프로토콜을 따르며 전이중화 통신(양쪽 장치가 동시에 송수신할 수 있는 방식)을 사용
  • CSMA/CD
    • 반이중화 통신
    • 데이터를 보낸이후 충돌이 발생하면 일정 시간 이후 다시 보내는 방식
  • 무선 LAN(IEEE802.11)
    • 반이중화 통신 -> 한 방향으로만 통신할 수 있는 방식( 데이터를 보낸 후 수신 완료 전 까지 다시 보내지 못함)
  • CSMA/CA
    • 반이중화 통신중 하나로 장치에서 데이터를 보내기 전까지 캐리어 감지 등으로 사전에 충돌을 방지하는 방식
  • 와이파이
  • BSS( Basic Service Set )
    • 기본 서비스 집합을 의미
    • 단순 공유기로 접속하는게 아닌 동일 BSS 내에 있는 AP들과 장치들이 서로 통신이 가능한 구조를 말함
    • 하나의 AP로만 구축되어 있기때문에 이동하며 네트워크 사용 불가
  • ESS( Extended Service Set )
    • 하나 이상의 연결된 BSS 그룹
    • 여러 BSS가 모여 있는 것이기 때문에 다른 장소로 이동하면서도 네트워크 사용 가능

계층간 송수신 과정

  • 애플리케이션 -> 전송 -> 인터넷 -> 링크 -> 링크(다른 네트워크) -> 인터넷 -> 전송 -> 애플리케이션

캡슐화 과정

  • 계층을 거치며 캡슐화하여 전송

    • ⬇ [ 데이터 ] - 애플리케이션 계층
    • ⬇ [ TCP(L4) 헤더 | 데이터 ] - 전송 계층
    • ⬇ [ IP(L3) 헤더 | TCP(L4) 헤더 | 데이터 ] - 인터넷 계층
    • ⬇ [ 프레임 헤더 | IP(L3) 헤더 | TCP(L4) 헤더 | 데이터 | 프레임 헤더] - 링크 계층

비캡슐화 과정

  • 계층에 따라 비캡슐화 과정을 통해 데이터 받음

    • ⬆ [ 데이터 ] - 애플리케이션 계층
    • ⬆ [ TCP(L4) 헤더 | 데이터 ] - 전송 계층
    • ⬆ [ IP(L3) 헤더 | TCP(L4) 헤더 | 데이터 ] - 인터넷 계층
    • ⬆ [ 프레임 헤더 | IP(L3) 헤더 | TCP(L4) 헤더 | 데이터 | 프레임 헤더] - 링크 계층

PDU ( Protocol Data Unit )

  • 네트워크 한 계층에서 다른 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU라고 함
  • 제어 관련 정보들이 포함된'헤더', 데이터를 의미하는 '페이로드'로 구성되어 각 계층마다 부르는 명칭이 다름
    • 애플리케이션 계층 - 메시지
    • 전송 계층 - 세그먼트(TCP), 데이터그램(UDP)
    • 인터넷 계층 - 패킷
    • 링크 계층 - 프레임(데이터링크 계층), 비트(물리 계층)

네트워크 기기

애플리케이션 계층 처리 기기

  • L7 스위치 (로드 밸런서) - 서버의 부하를 분산하는 기기
    • IP, URL, 서버, 캐시, HTTP 헤더, 쿠키들을 기반으로 트래픽 분산

    • 바이러스 등 필터링 기능

    • 전송 계층을 처리하는 L4 스위치는 스트리밍에서 사용하지 못하며 메시지를 기반으로 인식하지못해 IP와 포트를 기반으로 트래픽을 분산함.

    • 클라우드 서비스(AWS 등)에서 L7 스위치를 이용한 로드밸런싱을 ALB(Application Load Balancer) 컴포넌트로 하며, L4 스위치를 이용한 로드 밸런싱은 NLB( Network Load Balancer) 컴포넌트로 함.

    • 헬스 체크

      • 정상적인 서버 또는 비정상적인 서버를 판별하는데, 전송주기와 재전송 횟수등을 설정한 이후 반복적으로 서버에 요청을 보내는 것
    • 로드 밸런서를 이용한 서버 이중화 - 2대 이상의 서버를 기반으로 가상 IP를 제공하여 안정적인 서비스를 제공

인터넷 계층 처리 기기

  • 라우터
    • 여러개의 네트워크를 연결, 분할, 구분 시키는 역할
  • L3 스위치
    • L2 스위치와 라우팅 기능을 갖춘 장비

데이터 링크 계층 처리 기기

  • L2 스위치
    • 장치들의 MAC 주소를 MAC 주소 테이블을 통해 관리하며, 연결된 장치로부터 패킷이 왔을때 패킷 전송을 담당
  • 브리지
    • 두개의 근거리 통신망(LAN) 을 상호 접속할 수 있도록 하는 통신망 연결 장치
    • 포트와 포트 사이의 다리 역할을 하고, 장치에서 받아온 MAC 주소를 MAC 주소 테이블로 관리
    • 통신망 범위 확장
    • 서로 다른 LAN 등으로 이루어진 '하나의' 통신망을 구축할 때 쓰임

물리 계층 처리 기기

  • NIC (Network Interface Card , LAN 카드)
  • 리피터 - 들어오는 약해진 신호 정도를 증폭하여 다른 쪽으로 전달하는 장치
  • AP(Access Point) - 패킷을 복사하는 기기

IP 주소

ARP (Address Resolution Protocol)

  • IP 주소로부터 MAC 주소를 구하는 IP와 MAC 주소의 다리 역할을 하는 프로토콜
  • ARP를 통해 가상 주소인 IP 주소를 실제 주소인 MAC 주소로 변환 <-> RARP로 MAC->IP

홉바이홉 통신

  • IP 주소를 통해 통신하는 과정을 홉바이홉 통신이라고 함
  • 라우팅 테이블
    • 송신지에서 수신지 까지 도달하기 위해 사용됨
    • 라우터에 들어가 있는 목적지 정보들과 그 목적지로 가기 위한 방법이 들어 있는 리스트
  • 게이트 웨이
    • 서로 다른 통신망, 프로토콜을 사용하는 네트워크 간의 통신을 가능하게 하는 관문 역할을 하는 컴퓨터나 소프트웨어

IP 주소 체계

  • IPv4
    • 32비트를 8비트 단위로 점을 찍어 표기 (ex. 192.6.6.8)
  • IPv6
    • 64비트를 16비트 단위로 점을 찍어 표기(ex. fe80::672:c638:c45:24a2%20)
  • DHCP ( Dynamic Host Configuration Protocol )
    • IP 주소 및 기타 토인 매개변수를 자동으로 할당하기 위한 네트워크 관리 프로토콜
  • NAT ( Network Address Translation )
    • 패킷이 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소 정보를 수정해 IP 주소를 다른 주소로 매핑하는 방법
    • IPv4 주소 만으로는 수를 감당하지 못했는데, NAT로 공인 IP와 사설 IP로 나눠서 많은 주소를 처리 (외부 인터넷으로 나갈때는 공인 IP로 변경함)
    • 보안성 상승
    • 여러명이 동시에 인터넷에 접속하므로, 사용하는 호스트 숫자에 따라 접속 속도가 느려짐

HTTP

HTTP/2

  • HTTP/2는 SPDY 프로토콜에서 파생된 HTTP/1.x 보다 지연 시간을 줄이고 응답시간을 더 빠르게 할 수 있으며 멀티플렉싱, 헤어 압축, 서버 푸시, 요청의 우선순위 처리를 지원하는 프로토콜
  • 멀티 플렉싱 - 여러 개의 스트림을 사용하 송수신 함 -> 특정 스트림이 손실되었어도 다른 스트림에는 영향을 미치지 않음
  • 헤더 압축 - 허프만 코딩으로 압축
  • 서버 푸시 - HTTP/1.x 와 달리 요청이 없어도 서버에서 바로 리소스를 푸시할 수 있음(html 요청시 서버에서 html만 보내는게 아니라 요청을 받지 않아도 css 같이 보냄)

HTTPS

  • 애플리케이션 계층과 전송 계층 사이에 신뢰 계층인 SSL/TLS 계층을 넣은 신뢰 할 수있는 HTTP 요청
  • 통신 암호화
  • SSL/TLS
    • 전송 계층에서 보안을 제공하는 프로토콜
    • 제 3자가 메시지를 도청하거나 변조하지 못하도록 함
    • 인증 메커니즘 - CA에서 발급한 인증서를 기반으로 이루어짐
  • 암호화 알고리즘
    • 해싱 알고리즘 - SHA-256, SHA-384
    • SHA-256
      • 해시 함수의 결괏값이 256비트인 알고리즘이며 비트 코인을 비롯한 많은 블록체인 시스템에서도 사용
  • SEO(Search Engine Optimization) - 검색엔진 최적화
  • SEO가 높으면 검색 사이트에서 상단에 올라올 수 있다 -> HTTPS를 사용하면 순위가 높아짐
  • SEO 관리
    • 캐노니컬 설정 -> 사이트 링크에 canonical을 설정 (ex. <link rel="canonical" .../>
    • 메타 설정 -> html 파일의 가장 윗부분인 메타를 잘 설정 해야함
    • 페이지 속도 개선
    • 사이트맵 관리
  • HTTPS 구축 방법
    • 직접 CA에서 구매한 인증서를 기반으로 HTTPS 서비스 구축
    • 서버 앞단의 HTTPS를 제공하는 로드 밸런서두기
    • 서버 앞단에 HTTPS를 제공하는 CDN을 둬서 구축
profile
발전하고 싶은 사람

0개의 댓글