Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Network(1) #11

Open
simoniful opened this issue Mar 21, 2022 · 0 comments
Open

Network(1) #11

simoniful opened this issue Mar 21, 2022 · 0 comments
Labels

Comments

@simoniful
Copy link
Owner

simoniful commented Mar 21, 2022

인터넷

프로토콜 스위트(TCP/IP)를 기반으로 하여 전 세계적으로 연결되어있는 컴퓨터 네트워크 통신망

  • 하드웨어: Nuts and Bolts 너츠앤볼츠 관점
    • 호스트 / 종단 시스템 / 네트워크 엣지 (가장 자리에 있는 애들)
    • 엑세스 네트워크, 커뮤니케이션 링크
    • 패킷스위치 (라우터, 스위치) / 네트워크 코어 - 라우팅, 포워딩, 패킷 스위칭
  • 서비스
    • 어플리케이션에게 서비스를 제공하는 구조에 관한 정의
    • 어플리케이션에 서비스를 제공할 때, 프로그래밍을 통해 소켓이나 아이피를 연결하여 서비스를 제공
    • 이 때, 패킷 단위로 나누어 제공하며 효율성이 향상

데이터 통신 방식

connection-oriented service: TCP (Transmission Control Protocol)

  • reliable, in-order byte-stream data transfer : 신뢰할 수 있는, 순차적인 데이터 전송
  • flow control : 수신자 혹은 네트워크의 능력 고려하여 받을 수 있는 만큼 전송
  • congestion control : 네트워크 막힘 현상시 속도를 낮춰서 전송
  • 사용: HTTP, FTP, Telnet, SMTP(email)

connectionless: service UDP (User Datagram Protocol)

  • connectionless: 연결되어있지 않음
  • unreliable data transfer: 유실이 있을 수 있음, 순차적이지 않을 수 있음
  • no flow control: 받을 수 있던지 말던지 일단 양껏 때려 부음, 속도가 빠르다는 장점
  • no congestion control: 네트워크 현재 상태 그런거 모름
  • 사용: Streaming media, DNS, real time voice

네트워크 구조

  • 종단 시스템 / 네트워크 엣지
    • 네트워크에 가장자리에 있는 시스템
    • 호스트, 서버 / 클라이언트, peer-peer
  • 엑세스 네트워크, 커뮤니케이션 링크
    • 엣지와 코어를 연결하는 링크, physical media
    • 대역폭에 따른 성능 차이 고려
    • 공유 / 단독 사용 형식
      • DSL(digital subscriber line)
      • Cable, 이더넷, LAN, WAN
  • 네트워크 코어, 패킷스위치
    • 복잡하게 얽혀진 라우터, 인터넷 서비스 제공자들(ISPs)의 라우터 포함
    • 라우팅 (routing) : 출발지에서 목적지 까지 경로를 정하는 것. 라우팅 알고리즘을 이용 포워딩 테이블을 만드는 것
    • 포워딩 (forwarding) : 라우터에서 다음 라우터로 패킷을 보내는 것. 포워딩 테이블에서 읽고 다음 라우터로 보내는것
      • 패킷 스위칭 : 패킷을 쪼개서 보내는 방법
      • 서킷 스위칭 : 패킷을 쪼개지 않고 한 번에 보냄

패킷 스위칭과 서킷 스위칭

서킷 스위칭(circuit switching)

출발지에서 목적지까지 가는 길을 미리 설정(길을 사용할 edge도 미리 배정)
동시에 사용 가능한 인원이 제한. 실제 사용자 입장에서는 요청을 하지 않고 머무르는 시간이 더 길 수 있기 때문에 낭비되는 자원이 많음.
독점적으로 자원을 보내는것이 가능하며 사용 인원 한도 내에서는 어느정도 성능이 보장 - 대역폭 기준으로 일정하게 보장
서킷 스위칭의 방법 : FDM 방식 ( 주파수 분할 방식 ) , TDM 방식 ( 시간분할 방식 )
ex) 유선전화 / bandwidth 가 1Mpbs이고 1명의 유저당 active 상태에서 100kb/s 사용시 최대 10명의 유저만 사용가능

패킷 스위칭(packet-switching)

패킷 순서가 정해져 있지 않으며 패킷을 요청시 공유(statistical multiplexing), 헤더 필수
현재 보편적으로 많이 사용되는 방식, 많은 사람이 동시 다발적으로 이용 가능
낭비되는 자원이 없으나 혼잡도에 따라 Delay 발생
패킷 스위칭의 가장 핵심 원리: Store-and-forward, 저장 후에 전송
총 패킷의 길이가 라우터에 도착해야만 다음 라우터로 보낼 수 있다
*전송지연(transmission delay) 발생의 원인

패킷 스위칭에서 Delay

  • Nodal processing delay: check bit errors, 패킷 검사, 라우터 성능
  • Queueing delay: 도착 비율이 전송 비율보다 클 경우 라우터에 있는 버퍼(큐)에서 대기, 네트워크의 혼잡도
    *queue를 초과하는 경우 packet이 유실(Packet Loss). 대부분의 packet 유실은 queue 초과로 발생
  • Transmission delay: 큐 순서 도달 후, packet의 첫 bit가 나가기 시작한 순간부터 마지막 bit가 나가기까지 걸리는 총 시간, 패킷의 길이
  • Propagation delay: 패킷이 다음 목적지까지 가는데 걸리는 전송 시간(케이블의 길이에 비례), 라우터까지 물리적 거리

Q. 네트워크에서 데이터를 보내는 방식중 Packet switching을 쓰는 이유 ?

공유 사용 방식 커뮤니케이션 링크를 사용 할 때, 여러 호스트가 access link를 함께 이용하게 된다.
이 때, 만약 패킷 스위칭을 쓰지 않을 경우 어떠한 호스트의 데이터가 클 경우 link를 독점하게 되므로,
다른 호스트들은 사용할 수 없어 비효율적이게 된다.


OSI 7계층과 TCP/IP 4계층

OSI 7계층

본질은 표준, 각 역할에 따른 표준이 정해져 있으면 필요한 계층 영역에서 역할과 통제가 가능
image

  • 응용 계층 : 응용 프로세스 간의 정보 교환, 전자 사서함 , 파일 전송.
  • 표현 계층 : 정보의 형식 설정과 부호 교환, 암호화, 해독
  • 세션 계층 : 응용 프로세스 간의 연결 접속 및 동기 제어
  • 트랜스포트 계층 : 송수신 시스템 간의 논리적 안정과 균일한 서비스 제공
  • 네트워크 계층 : 정보 교환 및 중계 기능, 경로, 선정, 유통 제어.
    • 4계층에서 요구하는 서비스 품질(QoS) 제공하기 위해 기능적 , 절차적 수행.
    • IP,ICMP, OSPF, RIP 등의 프로토콜이 있다.
  • 데이터링크 계층 : 동기화, 오류 제어 등의 기능으로 데이터 블록을 인접 노드간에 오류없이 신뢰성 있는 전송.
    • 두 지점 간의 통신을 위해서는 MAC 주소를 사용한다.
    • 가장 일반적 프로토콜은 이더넷이며 대표적 장비로는 스위치, 브리지가 있다.
  • 물리 계층 : 매체 접근에 있어 기계적, 전기적 물리적 절차를 규정. 랜선, 허브, 리피터 등이 있다.

TCP/IP 4계층

실제 현실은 TCP/IP 프로토콜을 사용하는데 초점을 맞춰 7계층이 아닌 4계층으로 나뉜다.

  • 응용 계층: 메세지 단위 FTP, SMTP, HTTP - 5계층
  • 전송 계층: 세그먼트 단위 TCP, UDP - 4계층
  • 네트워크 계층: 데이터그램 또는 패킷 단위 IP - 3계층
  • 링크 계층: 프레임 단위 Wifi - 2계층
  • (물리 계층 - 1계층)

Multiplexing / Demultiplexing

image

  • 단말 시스템들은 각각 5계층을 가짐 (= 인터넷 구조는 네트워크 엣지에서 복잡성을 유지한다)
  • 캡슐화 / Multiplexing
    • 전송에 있어서 데이터를 감싸고 포장하는 것 - 메시지에서 프레임 단위까지 프로토콜 기반
    • 데이터 앞부분에는 헤더를 붙이고 뒷부분에는 트레일러를 첨가 - 상위 계층에서 전달 받은 헤더 / 트레일러를 붙인 데이터: 페이로드
  • 상위계층에서 받은 페이로드에 헤더를 붙여 아래 계층으로 보내고, 또 다시 그 페이로드에 헤더를 붙여 아래계층을 보내는 것
  • 해석에 있어서는 그 역순의 과정을 진행: Demultiplexing

단말 시스템 / 네트워크 엣지

Client/Server Network

  • 클라이언트 수가 증가할 때마다 서버와 서버에 연결된 네트워크 회선에 부하 발생
  • 근거리 네트워크 대비 확장성이 낮음
  • 클라이언트는고정된 IP사용, 의사소통을 시작하는 프로세스이다.
  • 서버는 다이나믹한 IP를 사용, 연결을 기다리는 프로세스이다. 서버 중심적인 네트워크 구성

P2P (Peer-to-Peer Network)

  • 서버를 거치지 않고 클라이언트 끼리 직접 통신
  • 망 구성에 참여하는 종단점의 대역폭 성능에 의존하여 구성. 부하가 분산
  • 컴퓨터끼리의 양방향 파일 전송 시스템
  • 각각의 컴퓨터가 서버와 클라이언트관계가 되고, 서로 연결하여 파일을 주고받는다. 망 확장이 가능한 구성
@simoniful simoniful added the CS label Mar 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant