CS/네트워크 수업 / / 2021. 3. 23. 02:17

컴퓨터 네트워크 2주차

1.3 network core

  • packet switching
    • store-and-forward : 전체 패킷이 라우터에 완전히 전송되기 전까지는 다음 레이어로 전송하지 않는다. 즉, 모두 저장한 후에 전송(forward)한다.
    • queueing delay, loss: 사용자 A, B로부터 라우터에 패킷이 도착하면 다음 링크로 패킷을 전송할 때, 도착한 패킷 순서대로(queue) 다음 링크로 전송한다. 도착한 순서대로 패킷을 전송한다고 해도, 도착하는 패킷 양이 서비스하는 패킷의 양을 상회한다면 메모리에 queue 형태로 패킷이 쌓이게 되는데, 쌓인 패킷의 양이 허용할 수 있는 버퍼를 초과한다면 패킷을 읽을 수밖에 없다(loss)
    • Two key network-core functions: 네트워크 코어에서 두 가지 핵심 기능
      • routing: 패킷들이 source(송신) → destination(수신) 전체 경로를 결정 by 라우팅 알고리즘
      • forwarding: 라우팅 알고리즘에 의해서 결정된 전체 경로 중, 하나의 라우트에서 다음 적절한 라우트 패킷을 이동. 전체 라우팅 경로 중에 특정 라우트에서 목적지까지 갈려면 어느 라우트를 택해야 하는지

  • circuit switching(회선 교환): 전통적인 전화 망에서 사용되던 방식
    • dedicated resources: 특정 회선은 특정 송수신자밖에 못쓴다(reserved resources) → no sharing 즉, 두 컴퓨터가 서로 아무러 데이터도 주고 받지 않는다고 하더라도 해당 회선은 해당 컴퓨터들만 사용 가능하며, 다른 컴퓨터들은 사용하지 못한다. 특정 컴퓨터들만 특정 회선을 사용하기 때문에 더 packet switching 방식보다 더 높은 퍼포먼스가 기대된다. 이런 방식이 전화 망에서 사용됨으로써 일정 수준의 전화 품질을 보장해줬다.
    • circuit을 만드는 방식
      • FDM(Frequency Division Multiplexing, 주파수 분할 다중화 방식): 주파수를 분할해서 사용. 예를 들어, 사용자가 4명이 있다고 하면 주파수를 4개로 분할해서 할당, 사용자들은 배정된 주파수 범위만 사용가능하고 타 주파수 대역을 침범할 수 없다.
      • TDM(Time Division Multiplexing, 시 분할 다중화 방식): 시분할 다중화 방식은 FDM의 주파수 대역을 자르는 방식과 달리, 링크를 사용하는 시간 대역을 잘라서서로 번갈아가면서 사용하는 방식이다. 사용자들은 타사용자에게 배정된 시간대에 해당 사용자가 데이터를 전송하지 않는다고 하더라도 해당 시간대를 사용할 수 없다.
    • packet switching vs circuit switching: 패킷 스위칭이 서킷 스위칭보다 더 많은 사용자를 수용할 수 있다. 왜? 서킷 스위칭은 사용자는 사용자에게 특정 회선의 배타적 사용을 보장해야 하기 때문에 유동적으로 사용자의 수를 증감할 수 없는 반면, 패킷 스위칭 방식은 더 많은 사용자를 수용하더라도 확률상 모든 사용자가 동시에 회선을 사용하는 것이 아니므로 서킷 스위칭보다 더 많은 사용자를 수용할 수 있다. 그렇다면 패킷 스위칭이 당연한 승리자냐? 라고 묻는다면, 한 꺼번에 데이터 전송이 발생하고, 또 한 동안 데이터를 안 보내는 환경에서는 YES! 이다.
  • network structure: 인터넷은 네트워크들의 네트워크이다. 여러 개의 네트워크를 다시 합친 개 인터넷임

1.4 delay, loss, throughput in networks

  • packets queue in router buffers
    • 패킷들이 전송될 때 delay가 발생한다.
    • queuing delay & loss: 패킷들이 라우터에 도착하면 도착한 순서대로 가되, 서비스되는 패킷의 양보다 도착하는 패킷의 양이 많을 경우 라우터 버퍼에 큐 형태로 패킷들이 저장되는데, 버퍼의 양보다 저장되는 패킷의 양이 많을 경우 데이터 손실이 발생한다.
  • Four sources of packet delay
    • nodal processing: 노드에서 처리되는 시간(어느 아웃풋 링크를 처리해야 되는지, 에러가 있는지 등)
      • 비트 에러 체크
      • 아웃풋 링크 결정
    • queuing delay: 아웃풋 링크가 결정나도 큐에서 기다리는 시간. 큐가 길수록 기다리는 시간이 길다.
    • transmission delay: 라우터에서 아웃풋 링크로 해당되는 패킷을 올리는 데 소요되는 시간.즉, 라우터에게 링크로 패킷을 전송하는데 걸리는 시간임
    • propagation delay: 한 노드에서 다른 노드까지 데이터가 전송되는데 걸리는 시간(propagation delay와 transmission delay는 완전히 다른 요소임)
    • 하나의 라우터에서 걸리는 지연시간 = processig delay + queuing delay + transmission delay + propagation delay
  • Packet loss
    • 버퍼로 알려진 큐는 용량에 제한이 있으므로 버퍼가 가득 찬 이후에 도착한 패킷들은 손실된다. 이렇게 손실된 패킷들은 이전 노드로부터 재전송될 수도 있고, source and system에 의해서 재전송될 수도 있고 아예 재전송이 안 될 수도 있다.
  • Throughput(단위시간당 처리율): sender와 receiver 사이에 처리되는 비트의 수(bits/time unit)
    • bottleneck link: end-end throughput을 제한하는 링크. average end-end throughput을 결정

1.5 protocol layers, service models

OSI(Open Systems Inter-connection) 7 Layer
두 개의 컴퓨터가 전선을 통해서 통신을 한다고 가정해보자. 이 전선은 5Hz ~ 8Hz 범위의 전자기파만 통과시킬 수 있다. 그러나 전송하려는 전자기파의 주파수 범위는 1Hz ~ 10Hz 이다. 그러면 내가 보내고자 하는 데이터는 온전히 전송될 수 있을까? 아마, 5Hz ~ 8Hz 범위의 데이터는 제대로 전송될지 몰라도, 나머지 범위의 주파수는 반대편 컴퓨터에 제대로 전송이 되지 않을 것이다.
https://dnr2144.tistory.com/entry/OSIOpen-Systems-Inter-connection-7-Layer
  • OSI 7 layer
    • application layer: 사용자의 네트워크 애플리케이션을 서포트하는 계층(http, smtp, ftp ...)
    • presentation layer: 서로 다른 시스템이 통신을 하는 데, 수신 측에서도 문제없이 데이터를 받아야 하기 때문에, 공통된 표준 형식에 맞춰 데이터를 변형하여 전송한다. 그래야 상대방도 표준 형식에 따라서 구조를 확인하고 수신자 측의 시스템 환경에 맞춰 디코딩해서 해석할 수 있다. Application 계층에서 Data를 이해할 수 있게 응용프로그램에 맞춰 변환하는 것이다. 예를 들어, 상대방으로부터 jpg 형태의 사진 데이터를 수신받았는데, txt 파일로 해석하면 Application 계층에서 사진 데이터를 해석할 수가 없다. 다시 정리하자면, 표현 계층은 응용 계층으로부터 전달받거나 전송하는 데이터의 인코딩 및 디코딩이 이루어지는 계층이다. JPEG, TIFF, GIF, MPEG 같은 매우 다양한 포맷으로 구분된다.
    • session layer: 연결에 대해서 관장한다. 예를 들어, 전화처럼 쌍방이 동시에 데이터를 주고 받을 것인지, 아니면 무전기처럼 한쪽씩 서로 번갈아서 통신할 건지, 아니면 일방적으로 데이터를 받기만 할 건지 같은 방법을 결정하는 계층이다.
    • transport layer: 프로세스와 프로세스 간의 데이터 전송(TCP, UDP)
    • network layer: 소스 단말부터 엔드포인트 단말까지 보조(IP, routing protocol(경로 결정))
    • link layer: 이웃하는 노드들 간에 데이터 전송 담당
    • physical layer: 전송하는 패킷을 전기적 신호로 만들어서 링크에 올려줌("on the wire")
  • Encapsulation
    • application 층에서 만들어진 메시지는 transport 층에서 메시지를 패킷으로 쪼갠다음 헤더를 붙인다. 이 헤더를 붙이는 작업을 encapsulation이라고 한다. 패킷으로 쪼개진 메시지에 헤더를 붙인 데이터를 세그먼트라고 한다.
    • 네트워크 층에서 세그먼트(H1+M)에다가 목적지 IP 정보를 헤더로 만들어서 헤더에 붙인다. 이것을 데이터그램(H1+H2+M)이라고 한다. 이 데이터 그램을 링크층으로 보낸다.
    • 링크층에서는 위에서와 마찬가지로 데이터그램은 해석하지 않고 다른 링크층에서 해석 가능한 제어정보를 다시 데이터 그램에 붙여서 캡슐화한다. 이것을 frame(H3+H2+H1+M)이라고 한다. 이렇게 만들어진 frame을 physical 층으로 내려준다.
    • 위와 같은 방식으로 하나의 노드에서 다른 노드로 가서 순차적으로 헤더를 제거하면서 정보를 해석하고 다시 다른 노드로 데이터를 보낼 때는 순차적으로 헤더를 붙여서 다른 노드로 전송한다. 이런 방식을 거쳐서 source에서 destination에 도착한다.
  • OSI 7 Layer Model과 TCP/IP 비교
    • Application: 프로세스 간 통신 담당. 메시지 배달. Application 층에서 사용하는 주소는 이름(www.naver.com 같은)
      • Application: 사용자에게 서비스를 제공하는 층. 하위층들을 사용해서 네트워크 자원들에 대한 접근을 도와줌
      • Presentation: 데이터 번역, 암호화, 압축 처리
      • Session: 세션 설정, 유지, 종료, 동기화 등 세션 중에 일어나는 모든 일 담당
    • Transport: 프로세스 - to - 프로세스, end - to - end 간 세그먼트 배달.
      • 신뢰성 관련된 제어 기능(Reliable Data Transfer)을 전송 층에서 제공(제공 안 할 수도 있음) (e.g. Flow Control, Error Control) 전송 층에서는 주소를 포트로 사용. end-to-end로 reliable data transfer 제공. 즉, 전송 층의 제어 정보 등은 목적지(end)에 가야만 볼 수 있지만, Link 층의 Reliable data Transfer는 다른 노드의 Link 층에서 볼 수 있다.
    • Network: Host - to - Host(Source - to -destination) 도착지의 호스트까지 찾아가는 역할. 데이터 그램(네트워크 층에서 패킷을 부르는 이름) 배달. 주소는 IP 사용.
      • 주요 기능: 라우팅, 포워딩
    • (Data) Link: Node - to - Node(Hop - to - Hop) Frame(링크층에서 패킷을 부르는 이름) 배달. 주소는 MAC(Physical address, Link-layer address) 사용.
      • Reliable Data transfer 지원(안 할 수도 있음): Flow Control, Error Control. 한 노드에서 다른 노드로 갈 때 제공(e.g. Flow Control, Error Control)
    • Physical: Node - to - Node(Hop - to - Hop) bit를 배달. 전기적, 기계적, 기능적, 절차적 규약(?) 정의. (e.g. 전기적 신호는 어떤 신호를 써서 0과 1을 나타낼 건지. 5V를 1로 할 건지, 1V를 1로 할 건지. 각각의 사용되는 선이 여러 개 있을 때 각 선의 기능은 무엇인지 등)

'CS > 네트워크 수업' 카테고리의 다른 글

컴퓨터 네트워크 6주차  (0) 2021.04.07
컴퓨터 네트워크 5주차  (1) 2021.03.29
컴퓨터 네트워크 3주차  (1) 2021.03.23
컴퓨터 네트워크 1주차  (0) 2021.03.23
컴퓨터 네트워크 4주차  (0) 2021.03.23
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유