Network Model

Jaeminst·2022년 3월 8일
0
post-custom-banner

네트워크 모델

OSI 7계층과 TCP/IP 4계층은 복잡한 네트워크를 단계별로 나누어 이해하기 쉽도록 도와줍니다.

과거에는 통신용 규약이 표준화 되지 않았고 각 벤더에서 별도로 개발했기 때문에 호환되지 않는 시스템이나 애플리케이션이 많았으며 서로 통신하기에 어려움이 있었습니다.

1960년대 말 방위고등연구계획국(DARPA)이 수행한 연구개발의 결과로 인터넷 프로토콜 슈트(TCP/IP 4계층)가 탄생하였고, 7계층 모델의 개념은 허니웰 인포메이션 서비스의 찰스 바크만의 노고에 의해서 탄생하였다. 이후 새로운 디자인(OSI 모형)이 ISO 7498 및 여러 부록을 통해 문서화되었다.

OSI 7계층은 애플리케이션과 데이터 플로우 계층으로 개념을 구분하고, TCP/IP 4계층은 이론보다 실용성에 중점을 둡니다.

OSI 7계층

  1. 물리 계층
    물리적 연결과 관련된 정보를 정의
    전기 신호 전달

  2. 데이터 링크 계층
    출발지와 도착지 주소 정보를 정의
    전기 신호를 데이터 형태로 변환

  3. 네트워크 계층
    IP 주소 정보를 정의
    라우터를 통해 패킷을 전송

  4. 전송 계층
    데이터의 전송을 확인하고 패킷이 유실되거나 순서가 바뀌면 바로 잡아줍니다

  5. 세션 계층
    네트워크의 대화 관리자(dialog controller)로서 통신장치들 간의 상호작용을 설정하고 유지하며 동기화합니다.

  6. 표현 계층
    데이터의 번역자 역할을 수행하며 인코딩이나 암호화, 압축, 코드 변환과 같은 동작이 이루어집니다.

  7. 응용 계층
    애플리케이션 프로세스를 정의
    사용자가 원하는 서비스를 수행합니다.

HTTP 특징

  • 무상태성 Stateless
    서버가 클라이언트의 상태를 보존하지 않음
    장점 : 서버 확장성 높음, 스케일 아웃
    단점 : 클라이언트가 추가 데이터 전송

  • 상태유지 Stateful
    서버가 클라이언트의 상태를 보존함
    장점 : 사용자의 로그인 상태를 유지할 수 있다(쿠키, 세션)
    단점 : 항상 같은 서버로 응답해야 한다

  • 비 연결성 Connectionless
    HTTP/1.0 연결을 유지하지 않는 모델
    HTTP/1.1 지속 연결로 문제를 해결

  • 3 way handshake

OSI 7계층 모델과 TCP/IP 4계층 모델을 기반으로 한 네트워크 흐름에 대한 이해

  • TCP/IP 패킷이 왜 필요한가?
    IP 패킷의 출발지, 목적지 정보를 보완하는
    출발지 PORT, 목적지 PORT, 전송 제어, 검증 정보 등을 포함
  • TCP와 UDP의 차이는?
    TCP 특징
    같은 계층에 속한 UDP에 비해 상대적으로 신뢰가능
    연결 지향 - TCP 3 way handshake (가상 연결)
    ㄴ 장치들 사이에 논리적인 접속을 성립하기 위해
    데이터 전달 보증
    순서 보장
    신뢰할 수 있는 프로토콜

SYN(싱크로나이즈), ACK(애크놀로지먼트)

UDP 특징
IP 프로토콜에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜
비 연결지향 - 빠른 속도 보장
데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
신뢰성보다 연속성이 중요한 서비스에 자주 사용 - 실시간 스트리밍
HTTP/3에서 UDP를 사용하여 커스터마이징이 가능하다는 장점

  • 데이터 링크 계층이란?
    OSI 7계층 중 2계층에 속한다.
    전기신호를 모아 데이터 형태로, 혹은 반대로 변환 = 직렬화(Serialization).
    물리계층으로 부터 전달받은 Bit데이터를 캡슐화한다.
    네트워크 카드, MAC 주소체계로 멀티 통신을 지원한다.
    Flow Control, 수신지가 현재 통신가능한 상황인지 확인하는 작업을 수행한다.
    스위치, 여러 장비를 연결하고 통신을 중재하며 포트를 필터링하고 정확한 포트로 포워딩한다.
    필터링, 패킷의 도착지 MAC 주소를 확인하고 매칭되는 주소의 해당 포트로 패킷을 포워딩 한다.
    ㄴ 이때 다른 포트로는 해당 패킷을 보내지 않음으로 이 동작을 필터링이라고 부릅니다.

  • 물리적 계층은 무엇인가?
    OSI 7계층에서 앱 개발자는 하향식 네트워크를 바라보는 구조로 하위 계층(Lower Layer)으로 갈수록 물리적으로 가까운 부분 1계층을 물리적 계층으로 명명한다.
    물리적 계층에서는 주로 전기 신호를 전달하는데 초점을 두고, 들어온 전기 신호를 그대로 잘 전달하는 것이 목적이다.
    이러한 전기 신호를 전달하기 위해 사용하는 주요 장비로는 허브(Hub), 케이블(Cable), 리피터(Repeater), 트랜시버(Tranceiver) 등이 있습니다.
    허브, 리피터 : 네트워크 통신을 중재
    케이블, 커넥터 : 장비들을 서로 연결
    트랜시버 : 랜카드와 케이블을 연결하는 장비

소켓과 포트의 특징과 차이점

  • 소켓
    프로그램이 네트워크에서 데이터를 송수신할 수 있도록, 네트워크 환경에 연결할 수 있게 만들어진 연결부가 바로 네트워크 소켓입니다.
    네트워크 상에서 돌아가는 두 개의 프로세스 간 양방향 통신의 하나의 엔드포인트이며, 여기서 엔드포인트는 IP주소와 포트 번호의 조합을 의미합니다.
    IP주소와 포트를 필요로하고 IP주소는 호스트의 주소, 포트는 호스트안에서 원하는 프로세스를 찾는 용도로 사용.
    소켓 => 프로토콜 + 호스트IP,Port + 목적지IP,Port

    • 소켓의 특징

    데이터를 주고 받는 프로세스 간의 양방향 통신을 목적으로 하기 때문에, 클라이언트와 서버의 구조를 가집니다. 이때 서버는 특정 포트 번호에 바인딩하여 작동하고, 소켓을 통해 클라이언트의 요청을 리스닝하며 대기합니다. 클라이언트는 이미 리스닝하고 있는 서버의 IP주소 및 포트 번호를 알고 있기 때문에, 이에 해당하는 서버에 연결을 시도하게 됩니다. 순조롭게 연결이 진행되고 나면, 서버는 같은 포트에 바인딩 된 새로운 소켓을 형성하고, 기존의 연결된 소켓으로는 연결된 클라이언트의 요청을 처리합니다. 따라서 같은 포트에 여러 개의 소켓을 생성하여 사용할 수 있습니다.
    위의 과정을 거쳐 소켓을 통해 연결이 완료되면, 데이터를 주고 받은 후 연결이 끊어지는 것이 아니라 양 쪽에서 실시간으로 통신할 수 있습니다. 따라서 실시간으로 메세지를 송수신 하는 채팅서비스나 스트리밍 서비스에서 주로 사용됩니다.

  • 포트
    운영체제 통신의 종단점이다.
    네트워크 서비스나 특정 프로세스를 식별하는 논리 단위이다.
    주로 포트를 사용하는 프로토콜은 전송 계층 프로토콜이라 하며, TCP, UDP가 있다.

  • 차이점
    포트는 네트워크나 특정 프로세스를 찾아가는 것이라면 소켓은 네트워크 환경에 연결하기 위해 만들어진 연결부이다.

HTTP 버전별 특징과 차이점

년도버전설명
1991HTTP/0.9GET 메서드만 지원, 헤더X
1996HTTP/1.0다양한 메서드 지원, 헤더 추가
1997HTTP/1.1 (RFC2068)현재 주로 -
1999(RFC2616)- 사용되는 -
2014(RFC7230~7235)- 버전
2015HTTP/2성능 개선
현재HTTP/3 진행중TCP 대신에 UDP 사용, 성능 개선
  • 특징
    클라이언트 서버 구조
    무상태성(Stateless), 비연결성(Connectionless)
    HTTP 메시지 (클라이언트가 요청을 보내면 서버가 응답을 보냄)
    단순함, 확장 가능

  • 차이점
    HTTP/1.0 = 연결 - 요청 - 응답 - 연결해제
    HTTP/1.1 = 지속연결 - 요청 - 응답, 요청1,요청2 - 응답1,응답2
    HTTP/1.1, HTTP/2는 TCP 기반
    HTTP/3은 UDP 기반

profile
DevOps !
post-custom-banner

0개의 댓글