컴퓨터통신

created : Fri, 15 Oct 2021 23:07:20 +0900
modified : Sun, 12 Dec 2021 19:40:50 +0900

컴퓨터에서 의미란? 데이터

데이터 전달/교환이란? 신호송수신

직접 신호 교환의 한계: 스위칭

서로 다른 통신망 연결: 이질성 극복


컴퓨터 통신 기술 재정의

네트위크를 보는 관점: 관심사항에 따른 관점

컴퓨터 통신/네트워크 분야


1장 기본개념

연결(Connectivity)

간접 연결: Switched Networking

간접 연결방법 : 스위칭 정책

어드레싱(Addressing) 및 라우팅(Routing)

비용 효율적인 자원 공유(Resource Sharing)

Multiplexing

주파수분할 다중화(Frequency Division Multiplexing)

시분할 다중화(Time-Division Multiplexing)

다중화: FDM and TDM

통계적 다중화(Statistical Multiplexing)

통계적 다중화와 패킷스위칭

통신 서비스 제공

통신 서비스: 통신 장애극복

프로토콜 (Protocol)

계층화 (Layering)

프로토콜 계층/개체

(전체) 프로토콜 정의: 프로토콜 그래프

(계층적) 프로토콜: 동작원칙

추상화/계층화 개념 정리

표준구조 (Standard Architectures)

7계층(기능) 정의

인터넷(Internet) 구조

성능(Performance) : 대역폭

성능: 소요 시간 / 지연 시간

Timing of Circuit Switching

Timing of Packet Switching

Packet Segmentation: Pipelining

성능 (Performance)

지연시간 x 대역폭 (Delay x Bandwidth Product)

Frames

통신 성능을 높이는 방법?

대역폭을 높이는 방법?

소요시간을 줄이는 방법?

2장. 데이터 링크 네트워크 (Data-Link Network)

데이터링크 계층

하드웨어 구성요소: 노드(Nodes)

모듈레이션: 데이터의 신호화

전자기 스펙트럼과 매체 특성

사용가능한 유선 링크의 종류

광케이블 : Optical Fiber

이동 통신(Cellular Network)

고정 무선 통신(Wireless Field linked)

위성통신(Satellite system)

단거리 무선통신(Short Range)

인코딩

인코딩(Encoding)

디지털 전송(Transmission)

데이터 전송(Transmission)

Pulse Code Modulation

PCM

변조 : Amplitude Modulation

디지털 전송(Transmission)

Non-Return to Zero(NRZ)

NRZI and Manchester

4B/5B

프레이밍(Framing)

바이트 중심 프로토콜(Byte-Oriented Protocol)

비트 중심 프로토콜 (Bit-Oriented Protocol)

오류 검출 코드(Error Detecting Code)

오류 검출율

2차원 패리티(Two-Demsional Parity)

인터넷 체크섬 알고리즘(Internet Checksum Algorithm)

u_short cksum(u_short *buf, count)
{
  register u_long sum = 0;
  while (count --) {
    sum += *buf;
    if (sum & 0xFFFF0000) {
      /* carry occured, so wrap around */
      sum &= 0xFFFF;
      sum ++;
    }
  }
  return ~(sum & 0xFFFF);
}

순회 중복 검사9Cyclic Redundancy Check: CRC)

Error Pattern: E(X)

CRC에 대해 간단히 설명하시오

복구 : 개요

오류 수정 코드(Error Correcting Codes)

재전송을 통한 오류 복구

ARQ

Stop and Wait : Tming 분석

슬라이딩 윈도우

Sliding Window Protocol의 성능

슬라이딩 윈도우의 오류 복구

Go-Back-N (구현) 옵션

오류처리 정책 : Go-Back-N 재검토

오류처리 정책 : Selective Repeat

Sliding Window 세부사항

프로토콜의 구현

슬라이딩윈도우(GoBackN) 세부알고리즘

순서 번호 공간 (Sequence Number Space)

동시 논리 채널(Concurrent Logical Channels)

Sliding Window 구현

typedef u_char SwpSeqno;
typedef struct {
  SwpSeqno SeqNum; /* sequence number of this packet */
  SwpSeqno AckNum; /* allows window sizes of up to 128 */
  u_char   flags;  /* up to 16 bits worth of flags */
} SWPHdr;

typedef struct {
  /* sender side state; */
  SwpSeqno    LAR;      /* seqno of last ACK received */
  SwpSeqno    LFS;      /* last frame sent */
  Semaphore   sendWindowNotFull;
  SWPHdr      hdr;      /* pre-initialized header */
  struct txq_slot {
    Event   timeout;    /* event associated with send-timeout */
    Msg     msg;
  } sendQ[SWS];

  /* receiver side state: */
  SWPSeqno    NFE;      /* seqno of next frame expected */
  struct rxq_slot {
    int     recieved; /* is msg valid? */
    Msg     msg;
  } recvQ[RWS];
} SwpState;

static XkHandle
sendSWP(SwpState *state, Msg *frame)
{
  struct sendQ_slot *slot;
  hbuf[HLEN];
  /* wait for send window to open */
  semWait(&state->sendWindowNotFull);
  state->hdr.SeqNum = ++state->LFS;
  slot = &state->sendQ[state->hdr.SeqNum % SWS];
  store_swp_hdr(state->hdr, hbuf);
  msgAddHdr(frame, hbuf, HLEN);
  msgSaveCopy(&slot->msg, frame);
  slot->timeout = evSchedule(swpTimeout, slot, SWP_SEND_TIMEOUT);
  return send(LINK, frame);
}

static int
deliverSWP(SwpState *state, Msg *frame)
{
  hbuf = msgStripHdr(frame, HLEN);
  load_swp_hdr(&hdr, hbuf);
  if (hdr.Flags & FLAG_ACK_VALID)
  {
    /* received an acknowledgment --- do SENDER-side */
    if (swpInWindow (hdr.AckNum, state->LAR+1, state->LFS))
    {
      do
      {
        struct sendQ_slot *slot;
        slot = &state->sendQ[++state->LAR % SWS];
        evCancel(slot->timeout);
        msgDestroy(&slot->msg);
        semSignal(&state->sendWindowNotFull);
      } while (state->stateLAR != hdr.AckNum);
    }
  }
  // 송신 쪽, timeout 처리는 생략
  if (hdr->Flags & FLAG_HAS_DATA)
  {
    struct recvQ_slot *slot;
    /* received data packet -- do RECEIVER-side */
    slot = &state->recvQ[hdr.SeqNum & RWS];
    if (!swpInWindow(hdr.SeqNum, state->NFE, state->NFE + RWS - 1))
    {
      /* drop the message */
      return SUCCESS;
    }
    msgSaveCopy(&slot->msg, frame);
    slot->received = TRUE;
    if (hdr.SeqNum == state->NFE)
    {
       Msg m;
       while (slot->received)
       {
         deliver(HLP, &slot->msg);
         msgDestroy(&slot->msg);
         slot->received = FALSE;
         slot = &state->recvQ[++state->NFE % RWS];
       }
       /* send ACK; */
       prepare_ack(&m, state->NFE);
       send(LINK, &m);
       msgDestroy(&m);
    }
    return SUCCESS;
  }
}

이더넷 (Ethernet) 개요

물리적 특성 (버스 토폴로지)

10BaseT Network

프레임 형식(Frame Format)

전송 알고리즘(Transmitter Algorithm)

전송 알고리즘 : 충돌(Collision)

CDMA/CD 평가

이론과 실제

이더넷 확장

토큰링

토큰링의 연결

토큰링 MAC 기본 개념

매체 접근 제어 세부사항

토큰링 관리

프레임 형식

무선(Wireless) LANs

확산 스펙트럼 (Spread Spectrum)

확산 스펙트럼 예 : 블루투스

확산 스펙트럼 예 : 무선 LAN

매체 접근

IEEE 802.11: multiple access

충돌 회피(Collisions Avoidance)

이동성(Mobility) 지원

BSS 접속/가입 (이동 감지)

매체접근제어(MAC) 비교

네트워크 어댑터

호스트의 관점(제어)

호스트와 어댑터 사이에서의 프레임(데이터) 이동

3장 패킷스위칭(Packet Switching)

확장성 있는 네트워크(Scalable Networks)

데이터그램 (Datagrams)

가상회선 스위칭(Virtual Circuit Switching)

가상회선 대 데이터그램

VC(가상회선)DG(데이터그램)
연결설정시간일반적으로 첫번째 데이터를 보내기 전에 연결 설정을 위한 왕복 지연시간(RTT)을 기다려야함. (해당 가상 회선에 대한 테이블 entry) 생성연결 설정을 위한 왕복 지연시간을 기다릴 필요가 없음; 호스트는 데이터가 준비가 되자마자 바로 보낼 수 있음
주소 오버헤드연결 요청에는 목적지의 완전한 주소를 포함하지만, 데이터 패킷에는 작은 식별자(identifier)만 포함하면 되므로 패킷 헤더의 오버헤드가 작다.매 패킷은 목적지의 완전한 주소를 가져야 하기 때문에, 패킷당 오버헤드가 연결성 모델보다 크다
패킷 포워딩 시간간단한 VC-ID 테이블 검색 => 빠른 시간에 가능(HW 처리도 가능)모든 주소에 대한 포워딩 테이블 검색 -> 늦어질 가능성 높음
장애극복스위치/링크가 고장나거나 비정상적으로 연결이 끊어지면, 새로운 연결을 설정해야 함 -> stateful패킷이 독립적으로 다루어지기 때문에 고장난 링크나 노드를 우회하여 라우팅 가능 -> stateless of soft state
자원 예약연결 설정시 자원 예약이 가능발신지 호스트는 네트워크가 패킷을 전달할 수 있는지, 또는 목적지 호스트가 동작 중인지도 알 수 없음

소스 라우팅(Source Routing)

스위치 성능

브리지 및 확장 LAN (Bridges and Extended LANs)

브리지(Bridge)의 동작

계층-2(Level-2) 연결

학습 브리지(Learning Bridges)

Switching Hub: traffic isolation

브리지/LAN 스위치의 한계

셀스위칭 (Cell Switching): ATM

개요

Cells

ATM 셀

셀 형식(Cell Format)

4장 인터네트워킹(Internetworking)

인터넷 서비스 모델

패킷 전달 서비스 모델

IP 패킷 헤더 형식

단편화와 재조립(Fragmenation and Reassembly)

전역 주소(Global Addresses)

데이터그램 포워딩 : IP의 실제 동작

주소 번역(Address Translation)

ARP 프로토콜

호스트 구성(Configuration) : DHCP

DHCP 동작

공유기

ICMP(Internet Control Message Protocol)

가상 네트워크(Virtual Networks)

IP 터널링(IP Tunneling)

터널링/가상 네트워크 사용이유

확장성 문제(Scalability Issues)

서브네팅(Subnetting)

포워딩 알고리즘

Classless 라우팅(CIDR)

차세대 IP (Next Generation IP(IPv6))

IPv6 주소

IPv6 헤더

IP NextHeader

이통 호스트에 대한 라우팅

Mobile IP

Mobile IP의 패킷 전달

세부 문제/기술

경로 최적화