개발하는 동글 :]

[네트워크] 네트워크 기본 개념 OSI 7계층, HTTP, HTTPS 본문

카테고리 없음

[네트워크] 네트워크 기본 개념 OSI 7계층, HTTP, HTTPS

동글하다 2024. 1. 12. 16:16

용어정리

  • MAC 주소 : 네트워크 인터페이스에 할당된 물리적 고유 식별 주소이다. 네트워크 통신을 계층화 하여 설명하는 OSI 모델에서 데이터 링크 계층의 일부에 해당한다.

OSI 7 계층이란?

  • OSI 7 계층은 네트워크 통신이 일어나는 과정을 7단계로 나눈 국제 표준화 기구 ISO에서 정의한 네트워크 표준 모델이다.
  • 각 계층을 지날 때마다 각 계층에서 Header가 붙게되고 수신측은 역순으로 헤더를 분석하게 된다.

OSI 7 계층

1계층 : 물리계층 [Physical Layer]

  • 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비
  • 단지 데이터를 전기적인 신호(0,1)로 변환해서 주고받는 기능만 함
  • 단위 : 비트[Bit]
  • 장비 : 통신 케이블, 리피터, 허브 등

2계층 : 데이터 링크계층[DataLink Layer]

  • 물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 통신의 흐름을 관리
  • 프레임에 물리적 주소(MAC adress)를 부여하고 에러검출, 재전송, 흐름제어를 수행
  • 단위 : 프레임[Frame]
  • 장비: 브리지, 스위치, 이더넷 등 (여기서 MAC주소를 사용)

3계층 : 네트워크 계층[Network Layer]

  • 데이터를 목적지까지 가장 안전하고 빠르게 전달
  • 라우터(Router)를 통해 경로를 선택하고 주소를 정하고**(IP)** 경로(Route)에 따라 패킷을 전달 > IP 헤더 붙음
  • 단위 : 패킷(Packet)
  • 장비 : 라우터

4계층 : 전송 계층[Transport Layer]

  • port 번호, 전송방식(TCP/UDP) 결정 > TCP 헤더 붙음
    • TCP : 신뢰성, 연결지향적
    • UDP : 비신뢰성, 비연결성, 실시간
  • 두 지점간의 신뢰성 있는 데이터를 주고 받게 해주는 역할
  • 신호를 분산하고 다시 합치는 과정을 통해서 에러와 경로를 제어

5계층 : 세션 계층[Session Layer]

  • 주 지점간의 프로세스 및 통신하는 호스트 간의 연결 유지
  • TCP/IP 세션 체결, 포트번호를 기반으로 통신 세션 구성
  • API, Socket

6계층 : 표현 계층[Presentation Layer]

  • 전송하는 데이터의 표현방식을 결정(ex. 데이터변환, 압축, 암호화 등)
  • 파일인코딩, 명령어를 포장, 압축, 암호화
  • JPEG, MPEG, GIF, ASCII 등

7계층 : 응용 계층[Application Layer]

  • 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행(ex. explore, chrome 등)
  • HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.

TCP / UDP

  • TCP와 UDP는 OSI 7 계층들 중 TCP/IP의 전송 계층에서 사용되는 프로토콜이다.

TCP[Transmission Control Protocol]

  • TCP는 연결 지향적 프로토콜이다.
  • 연결 지향적 프로토콜은 클라이언트와 서버가 연결된 상태에서 데이터를 주고받는 프로토콜을 의미한다.
  • 장치들 사이에 논리적인 접속을 성립하기 위해 연결을 설정해신뢰성을 보장하는 연결형 서비스이다.
  • TCP는 네트워크에 연결된 컴퓨터에서 실행되는 프로그램 간에 일련의 옥텟(데이터, 메시지, 세그먼트라는 블록 단위)을안정적으로,순서대로,에러 없이 교환할 수 있게 한다.

TCP의 특징

가상 회선 방식을 제공한다는 것은 발신지와 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정한다는 말이다.3-way handshaking 과정은 발신지와 수신지 사이에 논리적인 접속(세션)을 성립하는 과정을 의미한다.TCP가 위와 같은 특징을 지니는 이유는 간단하다.TCP는 연결형 서비스로, 신뢰성을 보장하기 때문이다.그래서 3-way handshaking의 과정도 사용하는 것이고, 데이터의 흐름 제어나 혼잡 제어와 같은 기능도 하는 것이다. 하지만 이러한 기능 때문에 UDP보다 속도가 느리게 된다.그렇기에 TCP는 연속성보다 신뢰성 있는 전송이 중요할 때 사용하는 프로토콜로 예를 들면, 파일 전송과 같은 경우에 사용된다.

  • 연결형 서비스로 가상 회선 방식을 제공3-way handshaking 과정을 통해 연결을 설정하고,4-way handshaking 과정을 통해 연결을 해제한다.
  • 흐름 제어(Flow control)데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우를 방지
  • 혼잡 제어(Congestion control)네트워크 내의 패킷 수가 과도하게 증가하지 않도록 방지
  • 높은 신뢰성을 보장신뢰성이 높은 전송을 하기 때문에 UDP보다 속도가 느림
  • 전이중(Full-Duplex), 점대점(Point to Point) 방식
    • 전이중(Full-Duplex) : 전송이 양방향으로 동시에 일어날 수 있다.
    • 점대점(Point to Point) : 각 연결이 정확히 2개의 종단점을 가지고 있다.

UDP[User Datagram Protocol]

!https://blog.kakaocdn.net/dn/bUUr5j/btrs2lPvZog/ZAwXhE895iwSutc9J3WBJK/img.png

UDP는 비연결형 프로토콜이다.

※ 연결을 위해 할당되는 논리적인 경로가 없고, 각각의 패킷은 다른 경로로 전송되며, 독립적인 관계를 지닌다.

UDP의 특징

  1. 비연결형 서비스로 데이터그램 방식을 제공한다.데이터의 전송 순서가 바뀔 수 있다.
  2. 데이터 수신 여부를 확인하지 않는다.TCP의 3-way handshaking과 같은 과정 X
  3. 신뢰성이 낮다.흐름 제어(flow control)가 없어서 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.
  4. TCP보다 속도가 빠르다.5. 1:1 & 1:N & N:N 통신이 가능하다.

UDP는 비연결형 서비스이기 때문에, 연결을 설정하고 해제하는 과정이 존재하지 않는다.서로 다른 경로로 독립적으로 처리하며, 흐름 제어 또는 혼잡 제어와 같은 기능을 처리하지 않기에 TCP보다 속도가 빠르며 네트워크 부하가 적다는 장점이 있지만, 신뢰성 있는 데이터 전송을 보장하지 못한다.UDP는 신뢰성보다는 연속성 있는 전송이 필요할 때 사용하는 프로토콜로 예를 들면, 실시간 서비스(streaming)에 자주 사용된다.

TCP vs UDP

 

프로토콜 종류 TCP UDP

연결 방식 연결형 서비스 비연결형 서비스
패킷 교환 방식 가상 회선 방식 데이터그램 방식
전송 순서 전송 순서 보장 전송 순서가 바뀔 수 있음
수신 여부 확인 수신 여부를 확인함 수신 여부를 확인하지 않음
통신 방식 1:1 통신 1:1 OR 1:N OR N:N 통신
신뢰성 높다 낮다
속도 느리다 빠르다

HTTP

HTTP의 전체 형태는 하이퍼텍스트 전송 프로토콜입니다. HTTP는 World Wide Web에서 정보가 전송되는 방식을 관리하는 일련의 규칙과 표준을 제공합니다. HTTP는 웹 브라우저와 서버가 통신할 수 있는 표준 규칙을 제공합니다.

HTTP는 TCP 위에 구축된 애플리케이션 계층 네트워크 프로토콜입니다. HTTP는 텍스트가 포함된 노드 사이에 논리적 링크를 설정하는 하이퍼텍스트 구조의 텍스트를 사용합니다. 이전 실행 명령을 참조하지 않고 각 명령이 개별적으로 실행되므로 "상태 비저장 프로토콜"이라고도 합니다.

HTTP의 장점

  • HTTP는 인터넷이나 다른 네트워크에서 다른 프로토콜로 구현될 수 있습니다.
  • HTTP 페이지는 컴퓨터와 인터넷 캐시에 저장되므로 빠르게 액세스할 수 있습니다.
  • 플랫폼 간 포팅을 허용하는 플랫폼 독립적
  • 런타임 지원이 필요하지 않습니다.
  • 방화벽을 통해 사용할 수 있습니다! 글로벌 적용 가능
  • 연결 지향적이지 않음; 따라서 세션 상태와 정보를 생성하고 유지하는 데 필요한 네트워크 오버헤드가 없습니다.

HTTP의 한계

  • 누구나 콘텐츠를 볼 수 있으므로 개인 정보 보호가 없습니다.
  • 누군가가 콘텐츠를 변경할 수 있으므로 데이터 무결성은 큰 문제입니다. 그렇기 때문에 HTTP 프로토콜은 암호화 방법을 사용하지 않으므로 안전하지 않은 방법입니다.
  • 당신이 누구에 대해 이야기하고 있는지 명확하지 않습니다. 요청을 가로채는 사람은 누구나 사용자 이름과 비밀번호를 얻을 수 있습니다.

HTTPS

HTTPS는 하이퍼 텍스트 전송 프로토콜 보안을 나타냅니다. HTTP의 고도로 발전되고 안전한 버전입니다. 포트 번호를 사용합니다. 데이터 통신의 경우 443입니다. SSL로 통신 전체를 암호화하여 안전한 거래를 가능하게 합니다. SSL/TLS 프로토콜과 HTTP의 조합입니다. 이는 네트워크 서버의 암호화되고 안전한 식별을 제공합니다.

HTTP를 사용하면 서버와 브라우저 간에 암호화된 보안 연결을 생성할 수도 있습니다. 이는 데이터의 양방향 보안을 제공합니다. 이는 잠재적으로 민감한 정보가 도난당하는 것을 방지하는 데 도움이 됩니다.

HTTPS 프로토콜에서 SSL 트랜잭션은 키 기반 암호화 알고리즘의 도움으로 협상됩니다. 이 키의 강도는 일반적으로 40비트 또는 128비트입니다.

HTTPS의 장점

  • 대부분의 경우 HTTPS를 통해 실행되는 사이트에는 리디렉션이 적용됩니다. 따라서 HTTP://를 입력하더라도 보안 연결을 통해 https로 리디렉션됩니다.
  • 이를 통해 사용자는 온라인 뱅킹과 같은 안전한 전자상거래 거래를 수행할 수 있습니다.
  • SSL 기술은 모든 사용자를 보호하고 신뢰를 구축합니다.
  • 독립 기관이 인증서 소유자의 신원을 확인합니다. 따라서 각 SSL 인증서에는 인증서 소유자에 대한 고유하고 인증된 정보가 포함되어 있습니다.

HTTPS의 한계

  • HTTPS 프로토콜은 브라우저에 캐시된 페이지에서 기밀 정보를 훔치는 것을 막을 수 없습니다
  • SSL 데이터는 다음 동안에만 암호화될 수 있습니다. transmission 네트워크에서. 따라서 브라우저 메모리의 텍스트를 지울 수 없습니다.
  • HTTPS는 조직의 네트워크 오버헤드뿐만 아니라 계산 오버헤드도 증가시킬 수 있습니다.

HTTP와 HTTPS의 차이점

매개 변수 HTTP HTTPS

프로토콜 하이퍼텍스트 전송 프로토콜입니다. 보안이 강화된 하이퍼텍스트 전송 프로토콜입니다.
보안 데이터가 취약할 수 있으므로 보안성이 떨어집니다.  해커가 중요한 정보에 접근하는 것을 방지하도록 설계되었습니다. 그러한 공격으로부터 안전합니다.
포트 기본적으로 포트 80을 사용합니다. 기본적으로 포트 443을 사용했습니다.
시작 HTTP URL은 http://로 시작합니다. HTTPS URL은 https://로 시작합니다.
사용 블로그와 같이 정보 소비를 위해 설계된 웹사이트에 적합합니다. 웹사이트가 신용카드 번호와 같은 개인정보를 수집해야 하는 경우에는 이것이 더 안전한 프로토콜입니다.
스크램블링 HTTP는 전송될 데이터를 스크램블하지 않습니다. 그렇기 때문에 전송된 정보가 해커에게 공개될 가능성이 더 높습니다. HTTPS는 데이터를 스크램블하기 전에 transmission. 수신측에서는 원본 데이터를 복구하기 위해 디스크램블링합니다. 따라서 전송되는 정보는 해킹될 수 없을 정도로 안전합니다.
프로토콜 그것은 TCP/ IP에서 수평 작동 HTTPS에는 별도의 프로토콜이 없습니다. HTTP를 사용하여 작동하지만 암호화된 TLS/SSL 연결을 사용합니다.
도메인 이름 검증 HTTP 웹사이트에는 SSL이 필요하지 않습니다. HTTPS에는 SSL 인증서가 필요합니다.
데이터 암호화 HTTP 웹사이트는 암호화를 사용하지 않습니다. HTTPS 웹사이트는 데이터 암호화를 사용합니다.
검색 순위 HTTP는 검색 순위를 향상시키지 않습니다. HTTPS는 검색 순위를 높이는 데 도움이 됩니다.
속도 빠른 HTTP보다 느림
보안 문제 해커에 취약 데이터가 네트워크를 통해 표시되기 전에 암호화되므로 매우 안전합니다.