시스템 프로그래밍(13)

조권휘·2022년 8월 30일
0

시스템 프로그래밍

목록 보기
13/14

Protocol

  • error가 발생하지 않도록 단계를 미리 정해두는 것
  • 여러 계층으로 구성되어 있다.
  • 계층마다 지원하는 특징이 각각 다르다.

OSI 7 layers

Physical layer

  • electrical signaling system
  • 주로 전선 사이이 계층
  • 인접한 노드들 사이의 error-free communication

  • MAC layer : LAN(link/bus)과 노드들의 연결
  • Point to Point : node끼리 연결

Network layer

  • routing : IP를 찾아가는 역할
  • routing과 IP가 주 역할

Transport layer

  • host간에 end-to-end communication
  • TCP / UDP

Session layer

  • session 유지 / 관리 / 서비스 제공, error 관리

Presentation layer

  • 암호화, network-std-data format, libraries...

Application

  • ftp, email, web, telnet...
  • open API 서비스

Layer 구조

  • 각 layer에는 pocket header를 붙이거나 떼면서 이동한다.
  • message가 매체에 맞게 분할/합체(fragmentation)될 수 있다.
  • 각 layer는 MTU(Maximum Transfer Unit)을 가지는데, 각 data segment의 최대 크기를 의미한다.

Protocol service

DHCP(Dynamic Host Configuration Protocol)

  • client에게 dynamic IP 주소를 할당한다.

NAT(Network Address Translation)

  • 공용 IP 주소를 공유한다.

DNS(Domain Name Server)

  • URL(symbol) 을 IP 서비스로 전환한다.

VPN(Virtual Private Network)

  • 집단간에 private network를 제공한다.

TCP/IP, UDP/IP

  • TCP/IP, UDP/IP는 전통적인 인터넷 protocol이지만, OSI 제공 모델이 약간씩 다르다.
  • IP : network layer
  • TCP/UDP : transport layer

IPv4 Address Types(32bits)

  • A~D class로 나뉘며 각 class는 제일 앞의 수가 정해져있다.
  • A class는 0~127, Bclass는 128~191, ...

Client/Server Model

  • client/server : client 프로그램 ↔ server 프로그램
  • web-based : web browser(client) ↔ web server(server)
  • Peer-to-peer(P2P) : 각 node가 server와 client가 동시에 될 수 있다.
  • server demon은 항상 client의 연결을 대기하고 있다.
  • client는 (IP address, Port #)을 이용하여 server에 연결을 시도한다.

Connection-oriented / Connectionless

Connection-oriented communications

  • TCP(Transmission Control Protocol)에 사용된다.
  • link를 만들어 놓은 뒤 data를 주고 받는다.
  • 안정적이며 대량의 data를 주고받기 좋다.
  • 매번 connection을 만들어야하기 때문에 server가 link를 감당하기 힘들어진다.
  • 간단한 data를 주고받을 때도 link를 만들어야한다.

Connectionless communication

  • UDP(User Datagram Protocol)에 사용된다.
  • 서버 부하가 없다.
  • 간단한 data를 주고받을 때 용이하다.
  • link가 없어서 신뢰성이 좋지 않다.
profile
안녕하세요 :) Data/AI 공부 중인 한국외대 컴퓨터공학부 조권휘입니다.

0개의 댓글