자료구조, 운영체제, 네트워크, 시스템설계/NCS

정보통신 : 기술 면접 준비6 : 프로토콜이란?/ OSI 모델 과 TCP/IP 모델

개발자 aloe 2022. 11. 19. 17:57
728x90

 

오늘은 프토토콜이 뭔지 OSI 모델 과 TCP/IP 모델은 무엇인지에 대하여 알아보자

 

프로토콜이란 쉽게 정보통신 사회를 살아 가는데 있어서 필요한 기기들이 정보를 주고 받기 위한 약속, 규칙을 의미한다.

좀더 상세하게 알아보자 

 

통신 프로토콜이란?

  • 네트워크를 구성하는 객체간 데이터를 주고 받기 위해 미리 약속한 전송(통신) 규약(규칙)을 의미 
  • 정보통신에서 통신을 통제하는 규칙들을 규정

 

 

 

프로토콜 기본 3대요소 

 

기본요소

  • 구문 : 데이터의 형식, 부호화(신호 방식 및 정의 포함) 등을 포함하여 객체 간 데이터의 내용을 구분 (parsing)하기 위한 문장 구조를 정의 
  • 의미 : 구문에 의해 분석된 데이터를 기반으로 행동(action)을 취하기 위한 방법(how) 
  • 타이밍(또는 순서) : 메시지의 송/수신을 위한 서로간의 시간적인 약속을 의미

 

 

주요 기능

단편화와 재결합

  • Fragmentation and Reassembly
  • 블록을 효율적으로 전송이 되도록 작은 단위의 블록(패킷)으로 나눔
  • 수신된 작은 블록들을 다시 원래의 데이터로 재결합

 

캡슐화(Encapsulation)

• 데이터의 목적지 및 신뢰성 제공을 위한 헤더와 트레일러를 추가

 

연결 제어(Connection Control)

• 회선 접속 => 링크 확립 => 데이터 전송 => 링크 해제 => 회선 절단

 

오류 제어(Error Control)

• 수신된 데이터의 오류를 검출하고 재전송을 요구

 

동기화(Synchronisation), 순서 제어(Sequencing), 주소 지정 (Addressing), 다중화(Multiplexing), 경로 선택(Routing) 등 다양한 기능들이 있음 

 

 

 


OSI 모델이란? (통신 규약 == 프로토콜의 이론적 표준)

프로토콜을 배우게 된다면 꼭 듣게 되는 OSI 모델이다. 표준화 정의를 위한 국제위원회에서 전 세계에서 이렇게 프로토콜을 사용 하면 좋을거 같아 라고 기준 즉 표준을 정의 한 모델이다. 약간 추상적 개념이라고 보면 된다. 

좀더 자세히 알아보자

 

개방형 시스템 상호 연결(OSI) 모델은 다양한 통신 시스템이 표준 프로토콜을 사용하여 통신할 수 있도록 국제 표준화 기구가 만든 개념 모델입니다. OSI는 다양한 컴퓨터 시스템의 상호 통신을 가능하게 하도록 하는 표준을 평이한 영어로 제공합니다.

OSI 모델은 컴퓨터 네트워킹을 위한 보편적인 언어로 생각할 수 있습니다. 이 모델은 통신 시스템을 7개의 추상적 계층으로 나누고 각각의 계층이 다른 계층 위에 얹히는 개념에 기초합니다.

 

좀더 이해하고 싶다면 아래 상세내용 글을 읽고 이글을 읽어 나가길 바란다. 

상세 내용 더보기

 

 

ISO 

  • 표준화 정의를 위한 국제위원회
  • 다양한 분야(상품 및 서비스)에서 서로 호환되기 위한 표준을 정의 
  • 스위스 제네바에 본부를 둠
  • CCITT: 국제 전신 전화 위원회
    • (Consultative Committee for International Telephony & Telegraphy) => ISO의 전화관련 국제 자문 위원회 

 

OSI 참조 모델 (ISO 에서 정의한)

  • OSI : Open System Interconnection 
  • 1960년대부터 데이터통신 개념 등장
  • 1970년대 독립적인 네트워크 출현 
  • 서로 다른 시스템간 데이터 전송이 가능한 표준의 필요성 등장 
  • ISO(International Organization for Standardization)에서 데이터통신에 대한 모델을 규정(1983) 
  • 7개의 계층으로 이루어진 모델

 

 

 

 

TCP/IP 4계층이란? (통신 규약 == 프로토콜의 실무적 표준)

즉 OSI모델에서 추상적으로 정의 한 개념과 비교되는 개념인데 실질적으로 실무에서 즉  현제 가장 많이 사용하는 

프로토콜의 표준이다. 

현재의 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 통신 규약(프로토콜)의 모음
OSI가 이론적 표준이라면 TCP/IP는 실무적 표준

TCP / IP란?

 

  • TCP/IP : Transmission Control Protocol /Internet Protocol
  • DoD(미국방성)에서 정의한 모델
    • ARPANET에서 개발
  • OSI 7 계층 모델과 유사
  • OSI 보다 먼저 정의되고 현재 가장 많이 사용되고 있음
  • 인터넷에서 사용되고 있으며 다양한 네트워크와 상호접속이 가능

 

계층 (아래서 상세 설명을 하겠다. 현대 사회에서 사용하는 이메일 보내기, 도메인 접속(네이버 구글 검색) 등 에 활용되는 통신 프로토콜이 내부적으로 어떻게 돌아가는지 보여준다. 

응용(Application) 계층
네트워크를 사용하는 응용프로그램
: DNS, HTTP, FTP, TELNET, SMTP, SNMP
 
전송(Transport) 계층
EP(End-Point)까지 데이터를 전송
EP는 주로 프로세스가 됨
: TCP, UDP
 
인터넷(Internet) 계층
종단 단말기까지 데이터를 전송
경로를 설정
: IP, ARP, RARP, ICMP, IGMP
 
네트워크 접근(Network Access/Interface) 계층
케이블, /수신기, 링크프로토콜, LAN 접속같은 물리적인 연결을 담당

전송 계층 

 

OSI 와 TCP/IP 계층 비교 

 

TCP/ IP 각 계층을 좀더 살펴 보자 

 

응용 계층 주요 서비스

 

FTP(File Transfer Protocol)
사용자의 파일을 업로드/다운로드하는 프로그램
기본 포트번호 : TCP/21(그 외 데이터 전송을 위한 동적인 포트 제공)
 
DNS(Domain Name Server)
DNS Query를 통해 IP주소를 얻기 위한 서비스 제공
기본 포트번호: TCP,UDP/53
 
HTTP(Hyper Text Transfer Protocol)
웹브라우저와 웹서버HTML 문서를 전달하기 위해 제공
기본 포트번호: TCP/80(암호화 포트: TCP/8080, HTTPS)
 
Telnet
원격의 서버에 접속하여 사용자 명령 처리를 위한 텍스트기반의 인터페이스를 제공
기본 포트번호: TCP/23 (추가, Telnet기능에 보안 요소를 적용한 서비스: SSH, TCP/22번 포트)
 
SMTP(Simple Mail Transfer Protocol)
메일 서버간 이메일 전송을 위한 서비스를 제공
기본 포트번호: TCP/25
 
SNMP(Simple Network Management Protocol)
네트워크의 상태를 모니터링 하거나 네트워크를 관리하기 위한 프로토콜
기본 포트번호: UDP/161, 162


 

전송 계층 

즉 응용계층에서 약속한 프로토콜들 예를 들어 이러한 이러한 기능은 HTTP 프로토콜을 사용할거고  (약속 1)

전송 계층에서 TCP 와 UDP 프로토콜 둘중 하나 선택해서 보내줘 (약속2)

이러한 개념이 각계층마다 한 층씩 즉 약속 들이 하나씩 증가하여 송 수신 한다고 생각 하면 된다.  

TCP와 UDP는 아래서 좀더 상세 설명하겠다. 여기서는 그냥 아 이렇게 상대방과 연결하는 프로토콜이 있군아 만 이해하자

 


인터넷 계층 (실질적 전송 담당 IP 를 통하여 )

  • 송/수신 단말기의 주소들을 읽고 데이터 전송을 위한 경로(path)를 결정(routing)
  • 네트워크를 통해 송/수신 단말(종단 노드) 간 데이터 전송을 담당
    • 주의: 링크로 직접 연결된 인접 장치 간 데이터 전송의 담당은 링크 계층(OSI 모델)
  • 종단 주소: IP Address
  • 프로토콜 예: IP, ARP, RARP, ICMP, IGMP 및(BGP, OSPF, RIP 등의 라우팅 프로토콜)
  • 데이터 단위: 패킷(Packet) 또는 데이터그램(Datagram)

 


그렇다면 위에서는 각 통신규약 즉 프로토콜 약속들이 중첩 되어 인터넷 계층에서 IP를 통해 송 수신 원하는 정보 전달및 받기를 하는 것을 알았다 그렇다면 

 

IP 란?

쉽게 하나의 컴퓨터가 가진 주민등록 번호라고 생각하자 이 컴퓨터의 주민 등록 번호가 어떠한 구조로 이루어져 있는지 살펴보겠다 이해하기 어렵기 때문에 아아 이런게 있군아 하고 여러번 보기 바란다.

 

개요
  • 인터넷을 위한 프로토콜(Internet Protocol)
  • 네트워크내 단말 간 통신을 위한 라우터들의 경로 설정
  • 원격의 단말(장치 또는 호스트) 간의 데이터 전달을 위한 프로토콜
 
비신뢰성(Unreliable)
  • IP 데이터그램이 목적지에 성공적으로 도달한다는 것을 보장하지 않음

 

비접속형(Connectionless)
  • 전달되는 데이터그램에 대해 상태 정보 유지하지 않음
  • Best-Effort 서비스

 

주소 지정
각 네트워크 상에 접속해 있는 노드의 주소를 데이터의 목적지로 지정
 
경로 설정
IP의 주요 기능
최적의 경로를 설정해 주는 역할
 
버전: IPv4, IPv6

 

 

IPv4 주소
  • 단일화된 가상적 통신 시스템을 제공
  • 동일한 방식의 주소 체제를 갖도록 함
  • 각 주소는 반드시 독립적(Unique)이어야 함
  • 32비트의 IP 주소는 2진수로 표시
    • 사용자는 이해하기 편리한 10진 표기 형식을 사용
    • 예: 203.112.34.254
  • 127.x.x.x은 로컬컴퓨터의 루프백(loopback)으로 지정되어있음.

전세계적으로 컴퓨터가 너무 많아져서 할당할 주소가 부족해졌다. 

ex 주민등록증 또한 인구 증가에 따라 2000년을 기준으로 1,2 에서  3,4로 시작 하는 것처럼 

이걸 해결하기 위해  IPv6가 나왔다.

 
IPv6 개요
  • IETF(Internet Engineering Task Force)에서 IP Address 부족에 대한 해결 방안으로 만듦
  • 주소의 크기가 각각 128비트(16바이트)
  • 암호화(IPsec) 확장기능 제공 à 보안기능 강화
  • 브로드캐스트(broadcast) 기능 제거
  • 향상된 서비스 품질 지원
  • 자동 주소 설정 기능 제공
  • 지원 전송 방식
    • 유니캐스트(Unicast)
    • 애니캐스트(Anycast)
    • 멀티캐스트(Multicast)
 
  • IPv6 주소 표현
  • 16비트씩 8부분으로 16진수로 표시
  • 각 부분은 “:”로 구분
    • 예: AAAA:A0A0:0000:0000:0000:0000:0000:BBB1
  • 중간에 또는 다음의 값이 0일 경우 구분자 사이 생략도 가능
    • 예: AAAA:A0A0::::::BBB1 또는 AAAA:A0A0::BBB1

 


위에서 일단 IP가 뭔지 알아보았다. 그렇다면 송신측과 수신측연결을 하는데 있어서

앞서 이야기한 TCP와 UDP를 알아보자

참고 자료 + 읽어보면 좋은 자

https://cocoon1787.tistory.com/757

 

TCP

주요 특징
  • 두 프로세스 또는 호스트 사이에 믿을 수 있는 연결 지향적인 전송을 제공
  • 전 이중 통신 지원 => Full Duplex Transmission
  • 데이터의 흐름을 제어 => Flow Control
    • 수신 상태를 확인하여 전송 속도를 변경(기법: Slow Start)
  • 수신자 상태에 따른 혼잡 제어 => Congestion Control
    • •윈도우 크기(Window Size)를 조절하여 수신자의 버퍼 상태를 고려
  • 데이터 오류 발생 시 재전송을 통한 오류 제어
  • 신뢰성 있는 데이터 전송을 보장
    • 송신자는 ACK 회신을 통해 수신 성공을 확인
  • TCP기반의 소켓 : 스트림 소켓

 

 

 

 

TCP 구조 (2/5)
  • 전송 포트(Source Port, 16비트)
  • 운영체제내 송신 프로세스의 주소
  • 응용프로그램을 식별하기 위해 운영체제에의해 동적인 번호로 할당됨

 

  • 수신 포트(Destination Port , 16비트)
    • 수신 프로세스의 주소
    • 수신 포트는 서버 구동 시 할당됨
  • 순서 번호(Sequence Number , 32비트)
    • TCP 세그먼트의 일련번호
    • 일련번호는 세그먼트 별 1씩 증가
    • 세그먼트의 누락 해결, 순서 교정 및 중복 세그먼트 방지용

 

 

 

 

UDP

 

 

 

 

이러한 프로토콜을 위한 장치들은 어떤것이 있을까?

인터네드워킹 하드웨어

 

 

리피터(Repeater)
스테이션간 거리를 확장할 때, 신호를 증폭시켜주는 역할을 수행
 
브리지(Bridge)
서로 다른 프로토콜을 사용한 데이터링크 계층 또는 물리 계층을 연결하여 데이터나 신호를 변환하는 장비
 
라우터(Router)
/수신 간 중간 서브넷(부 네트워크, 중간 노드)을 거쳐 최적의 경로를 선택하는 기능을 담당
패킷을 전달하는 역할을 수행
 
게이트웨이(Gateway)
서로 다른 프로토콜이나 서로 다른 네트워크를 결합하는 장비
= 멀티 프로토콜 라우터
 
 

참고 자료 

https://marades.tistory.com/15 

 

OSI 7계층과 TCP/IP 4계층

OSI 7계층 OSI 7계층이란? Open Systems Interconnecrtoin 의 약자로서, ISO(국제표준화기구)에서 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명한 모델 네트워크 구성 요소를 표준화 → 시

marades.tistory.com

 

프로토콜이란?/ OSI 모델 과 TCP/IP 모델

728x90