와븨 2022. 9. 24. 21:57

개요

  • 네트워크는 대부분 TCP/IP로 이루어져서 TCP/IP 프로토콜 그룹이라고도 함

 

계층화

TCP/IP 프로토콜 집합의 4계층

  • 응용 계층 (application) - Telnet, FTP, e-mail
  • 전송 계층 (transport) - TCP, UDP
  • 네트워크 계층 (network) - IP, ICMP, IGMP
  • 링크 층 (network interface) - 장치 드라이버와 인터페이스

OSI 7계층 : 물리계층, 데이터링크계층, 네트워크계층, 트랜스포트계층, 세션계층, 프레젠테이션계층, 애플리케이션계층

 

링크 계층, 데이터링크 계층, 네트워크 인터페이스 계층

  • 운영체제의 디바이스 드라이버와 네트워크 인터페이스 카드(LAN CARD) 포함
  • 연동되어 있는 케이블의 물리적인 인터페이스와 관련된 하드웨어적인 부분 제어

 

네트워크 계층, 인터넷 계층

  • 네트워크 상의 패킷의 이동 제어(패킷 라우팅)
  • IP, ICMP, IGMP로 구성
IP unique한 주소를 통해 목적지에 다가갈 수 있도록 함
(전세계에 하나밖에 없어서 어디든지 갈 수 있다)
ICMP IP 패킷 전송 중 에러 발생 시 에러 발생 원인을 알려주거나 네트워크 상태를 전달하는 프로토콜
IGMP 서브넷(로컬 네트워크) 상의 멀티캐스팅을 위한 프로토콜

 

트랜스포트 계층

  • 상위 응용 층에 대해 두 호스트간의 데이터 흐름을 제공
  • TCP, UDP
TCP - 두 호스트간의 신뢰성 높은 데이터 흐름을 제공
(분할, 패킷 식별, 타임 아웃 설정-재전송 관련 기능)
=> 타임 아웃 기능을 활용해 전송되지 못한 잃어버린 패킷을 확인

- 대용량 데이터 전송 : 대용량 데이터를 분할하여 전송하고 재조립을 하는데, 이 때 재조립을 TCP가 담당
UDP - 아주 단순한 서비스를 응용 계층에 제공

- 90% 정도를 전송

- 빠른 전송 -> 빠른 응용에 사용

 

응용 계층

  • 특정 응용에 대한 상세한 동작을 처리
  • 공통 응용 : HTTP-웹, Telnet-원격 접속 후 연결, FTP-파일 전송, 두개의 연결(실질적 파일 전송, 컨트롤), SMTP-네트워크 통계 자료 받음, SNMP-시스템이나 장비 모니터링

 

인터넷을 구성하는 가장 쉬운 방법

  • 라우터를 통해 둘 또는 그 이상의 네트워크를 연결
  • 멀티 홈드 시스템 : 복수의 인터페이스를 갖는 시스템 => 호스트가 라우터 기능을 수행하도록 구성 가능
  • Bridge/Hub : 네트워크를 연결하는 또 다른 방법으로 링크 계층에 접속

 +) 인터넷이 강력하고 편한 이유 : 응용으로부터 네트워크 접속에 따른 물리적인 부분이 감추어져 있기 때문이다.

 

 

TCP/IP 계층화

TCP 응용

  • HTTP
  • Telnet과 Rolgin
  • FTP
  • SMTP

UDP 응용

  • DNS
  • TFTP
  • Bootstrap Protocol
  • SNMP
  • QUIC

IP

ICMP(Internet Control Message Protocol) 

  • IP층을 이용해서 에러메세지 교환과 다른 중요한 정보를 다른 호스트나 라우터의 IP층과 교환
  • 응용 계층에서 직접 액세스 -> PING(네트워크 상황 판단에 사용), Traceroute(hop에 limit을 줘서 패킷 죽으면 에러 m을 전송하고 hop을 1씩 더함)

IGMP(Internet Group Management Protocol)

  • 복수의 호스트에 UDP 데이터 그램을 송신하는 멀티캐스팅에 이용되는 프로토콜

 

ARP와 RARP

  • IP 주소와 MAC 주소 간의 변환에 사용
IP 주소 - Global하게 고유함

- 네트워크 계층
MAC 주소 - Local 내에서만 고유함 (Local 외에서는 중복도 상관없음)

- 링크 계층

 

 

인터넷 주소

  • 인터넷 상의 모든 인터페이스는 고유의 인터넷 주소(IP 주소)를 갖는다.
  • IP 주소는 A~E의 5개의 클래스로 나눈다.

IP 주소의 5개 클래스

 

IP 주소의 유형

  • 유니캐스트(Unicast, 단일 호스트)
  • 브로드캐스트(broadcast, 특정 네트워크 상의 모든 호스트)
  • 멀티캐스트(multicast, 멀티 캐스트 그룹에 속하는 호스트)

 

네트워크 IP 주소 관리 조직

  • InterNIC(Internet Network Information Center) : 등록서비스, 디렉토리와 데이터 베이스 서비스, 정보 서비스
  • KRNIC : 국내의 IP 주소와 도메인 이름 할당

 

 

DNS

  • IP 주소와 호스트 이름간의 대응 관계 정보를 제공하는 분산 데이터 베이스

 

 

캡슐화 (Encapsulation)

TCP를 이용한 데이터 전송

  • 데이터의 전송 시 각 계층은 데이터가 목적지에 전달되도도록 수신된 데이터에 각종 헤더와 데이터 트레일러 정보를 추가
  • TCP 세그먼트(segment) : TCP가 IP에 전송하는 데이터 단위
  • IP 데이터그램(datagram) : IP가 네트워크 인터페이스로 전송하는 데이터 단위
  • 프레임(frame) : 이더넷 네트워크를 통하여 전달되는 비트 스트림

 

TCP를 이용한 데이터 전송 : 각 계층은 수신된 데이터에 각종 헤더와 데이터 트레일러 정보를 추가

 

이더넷 프레임의 물리적 특성에 따른 데이터 크기 : 46~1500 바이트

 

UDP 이용한 데이터 전송

  • UDP가 IP로 전송하는 정보 단위는 UDP 데이터 그램
  • UDP 헤더의 크기 : 8바이트

 

TCP와 UDP의 16비트 포트번호

  • 헤더에 응용을 식별하기 위한 발신지 포트 번호와 목적지 포트 번호를 저장

 

이더넷 헤더의 16비트 프레임 타입 필드

  • 네트워크층 프로토콜이 데이터를 생성한 것을 식별

 

 

역다중화 (Demultiplexing)

  • 트랜스포트 계층 세그먼트의 데이터를 올바른 소켓으로 전달하는 작업
  • 동작 방식 : 세그먼트가 호스트에 도착하면 트랜스포트 계층은 세그먼트 안의 목적지 포트번호를 검사 -> 상응하는 소켓으로 세그먼트 전송

 

 

클라이언트-서버 모델

반복 서버

  • TCP 서버
  • 순서 : 클라이언트의 요청 대기 -> 요청 처리 -> 클라이언트에게 응답 전송 -> 다시 요청 대기
  • 동시 서비스 제공 불가

 

병렬 서버

  • UDP 서버
  • 순서 : 클라이언트의 요청 대기 -> 요청 처리를 위한 새로운 서버를 시작 -> 처리 후 서버 종료 -> 다시 요청 대기
  • 동시 서비스 제공 : 새로운 별도의 서버를 가동하여 복수의 클라이언트가 동시에 서비스를 받을 수 있음

 

 

포트 번호

  • TCP와 UDP가 응용을 식별하기 위해서 16비트 포트 번호를 이용
  • 클라이언트 포트 번호 : 하나의 클라이언트는 사용자가 서비스를 필요로 하는 동안만 존재
  • 1~1024번은 지정 포트, 1025번 부터는 랜덤 포트
  • UNIX 시스템에서의 포트 번호 : ~/etc/services 파일에 들어있음

 

 

RFC

  • 프로토콜을 규정한 문서 (인터넷에서 기술을 구현하는 데에 필요한 절차 등을 제공하는 공문서 간행물)
  • 인터넷에 대한 모든 공식적인 표준안에 대한 문서 양식으로 고유 번호가 부여됨
  • FTP와 전자 메일을 통해 RFC의 자료를 입수
  • 할당된 번호 RFC는 인터넷 프로토콜에서 사용하고 있는 모든 매직 넘버나 정수 등이 정의되어 있음
  • IAB의 공식 프로토콜 표준은 현재 RFC 1600까지 되어 있음
  • 호스트 요구사항 RFC : RFC 1122(링크층, 네트워크 층, 트랜스포트 층 대상), RFC 1123(응용 층 대상)
  • 라우터의 요구사항 RFC : RFC 1009

 

 

인터넷

  • 소문자로 된 인터넷 (internet) : 공통 프로토콜 그룹을 사용하는 복수의 네트워크로 접속한 것
  • 대문자로 된 인터넷 (Internet) : TCP/IP를 사용하여 전세계의 호스트와 상호 통신이 가능한 대규모 네트워크

 +) 대문자로 된 인터넷은 소문자로 된 인터넷도 되지만, 그 역은 성립하지 않음

 

 

응용 프로그램 인터페이스 (API)

소켓

  • 네트워크 환경에 연결할 수 있게 만들어진 연결부
  • 생성과 설정 과정이 끝나면 운영체제의 통신 관련 정보를 참조해 다양한 작업을 편리하게 할 수 있는 데이터 타입
  • 버클리 소켓(Berkely sockets)이라고도 함

TLI(Transport Layer Interface)

  • 서비스의 품질과 정보의 정확한 전달을 담당하는 계층인 트랜스포트층에 정해진 인터페이스
  • XTI(X/Open Transport Interface)라고 부르기도 함