[CS 기본 개념] 전공면접 준비자료 #6 Network

dk-kling·2022년 3월 17일
4

Lecture Concept

목록 보기
6/7
post-thumbnail

😄 제가 대학원 준비과정에서 정리했던 컴퓨터공학과 기본 과목을 공유합니다!
📬 댓글로 이메일 남겨주시면 한글 파일 보내드리겠습니다!
PS: 이현경 취업 성공 기원

📚 Network

1. OSI 7 Layer

1) 물리 (Physical)

리피터, 케이블, 허브 등
주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 역할

브릿지, 스위치 등
물리 계층을 통해 송ㆍ수신되는 정보의 오류와 흐름을 관리해 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할

  • MAC 주소를 이용해 통신한다.
  • Frame에 MAC 주소를 부여하고 에러검출, 재전송, 흐름 제어를 진행한다.

3) 네트워크 (Network)

라우터, IP
데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능

  • 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달해준다.
  • 라우팅, 흐름 제어, 오류 제어, 세그먼테이션 등을 수행한다.

4) 전송 계층 (Transport)

TCP, UDP
TCP, UDP 프로토콜을 통해 통신을 활성화

  • TCP : 신뢰성, 연결 지향적
  • UDP : 비신뢰성, 비연결성, 실시간

5) 세션 (Session)

API, Socket
양 끝 단 응용 프로세스의 통신 관리

  • 데이터가 통신하기 위한 논리적 연결을 담당한다.
  • TCP/IP 세션을 만들고 없애는 책임을 지니고 있다.

6) 표현(Presentation)

JPEG, MPEG 등
데이터 표현에 대한 독립성을 제공하고 암호화

  • 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 감소
  • 파일 인코딩, 명령어를 포장, 압축, 암호화한다.

7) 응용(Application)

HTTP, FTP, DNS 등

  • 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
  • 사용자 인터페이스, 이메일, 데이터베이스 관리 등 서비스 제공

2. UDP (User Datagram Protocol)

데이터를 datagram 단위로 처리하는 비연결형 프로토콜
DNS에 활용


3. TCP (Transmission Control Protocol)

reliable network를 보장하는 연결형 프로토콜
손실 순서 congestion overload

  • Handshake
    ACK와 Sequence Number를 주고받아
    데이터 흐름의 신뢰성을 구축
  • 3-way handshake : 통신 시작 전에 연결 설정
  • 4-way handshake : 가상회선 방식 연결 해제

4. Flow Control

송신측과 수신측 사이의 데이터 처리 속도 차이(흐름)을 해결하기 위한 기법.
만약, 송신측의 전송량 > 수신측의 처리량일 경우 전송된 패킷은 수신측의 큐를 넘어서 손실될 수 있기 때문에 송신측의 패킷 전송량을 제어하게 된다.

  • Stop and Wait(정지 - 대기)
    매번 전송한 패킷에 대한 확인 응답을 받아야 그 다음 패킷을 전송할 수 있다.
    이러한 구조 때문에 비효율적이다. (단점)

  • Give & Take.

  • Sliding Window(슬라이딩 윈도우)
    (송신측 = 전송측)
    수신측에서 설정한 윈도우 크기만큼 송신측에서 확인 응답 없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 기법이다.
    윈도우 : 송신, 수신 스테이션 양쪽에서 만들어진 버퍼의 크기.

Stop and Wait의 비효율성을 개선한 기법

송신측에서는 Ack 프레임을 수신하지 않더라도 여러 개의 프레임을 연속적으로 전송할 수 있다.

송신측에서 0,1,2,3,4,5,6을 보낼 수 있는 프레임을 가지고 있고 데이터 0,1을 전송했다고 가정하면 슬라이딩 윈도우의 구조는 2,3,4,5,6처럼 변하게 된다.

이때, 만약 수신측으로부터 ACK라는 프레임을 받게 된다면 송신측은 이전에 보낸 데이터 0,1을 수신측에서 정상적으로 받았음을 알게 되고 송신측의 슬라이딩 윈도우는 ACK 프레임에 따른 프레임의 수만큼 오른쪽으로 경계가 확장된다.


5. Congestion Control

송신측의 데이터 전달과 네트워크의 데이터 처리 속도를 해결하기 위한 기법이다.
한 라우터에게 데이터가 몰려 모든 데이터를 처리할 수 없는 경우, 호스트들은 재전송을 하게 되고 결국 혼잡만 가중시켜 오버플로우나 데이터 손실이 발생한다.
이러한 네트워크의 혼잡을 피하기 위해 송신측에서 보내는 데이터의 전송 속도를 제어하는 것이 혼잡 제어의 개념이다.

AIMD(Additive Increase Multicative Decrease)

합 증가 / 곱 감소 알고리즘이라고 한다.
처음에 패킷 하나를 보내는 것으로 시작하여 전송한 패킷이 문제 없이 도착한다면 Window Size를 1씩 증가시키며 전송하는 방법이다. 만약, 패킷 전송을 실패하거나 TIME_OUT이 발생하면 Window Size를 절반으로 감소시킨다.

  • 여러 호스트가 한 네트워크를 공유하고 있으면 나중에 진입하는 쪽이 처음에는 불리하지만, 시간이 흐르면 평형 상태로 수렴하게 되는 특징이 있다.
  • 문제점은 초기 네트워크의 높은 대역폭을 사용하지 못하고 네트워크가 혼잡해지는 상황을 미리 감지하지 못하여 혼잡해지고 나서야 대역폭을 줄이는 방식이다.

Slow Start

  • AIMD가 네트워크의 수용량 주변에서는 효율적으로 동작하지만, 처음에 전송 속도를 올리는 데 시간이 너무 길다는 단점이 있다.
  • Slow Start는 AIMD와 마찬가지로 패킷을 하나씩 보내는 것부터 시작한다. 이 방식은 패킷이 문제 없이 도착하면 각각의 ACK 패킷마다 Window Size를 1씩 늘린다. 즉, 한 주기가 지나면 Window Size는 2배가 된다.
  • 따라서 그래프의 모양은 지수 함수 꼴이 된다.
  • 혼잡 현상이 발생하면 Window Size를 1로 떨어뜨린다.
  • 처음에는 네트워크의 수용량을 예측할 수 있는 정보가 없지만 한번 혼잡 현상이 발생하고 나면 네트워크의 수용량을 어느정도 예상할 수 있으므로 혼잡 현상이 발생하였던 Window Size의 절반까지는 이전처럼 지수 함수 꼴로 Window Size를 증가시키고, 그 이후부터는 완만하게 1씩 증가시키는 방식이다.

미리 정해진 임계값(threshold)에 도달할 때까지 윈도우의 크기를 2배씩 증가시킨다.
Slow Start라는 이름을 사용하지만, 매 전송마다 2배씩 증가하기 때문에 전송되어지는 데이터의 크기는 지수함수적으로 증가한다.
전송되는 데이터의 크기가 임계 값에 도달하면 혼잡 회피 단계로 넘어간다.

혼잡 회피(Congestion Avoidance)

윈도우의 크기가 임계 값에 도달한 이후에는 데이터의 손실이 발생할 확률이 높아진다.
따라서 이를 회피하기 위해 윈도우 크기를 선형적으로 1씩 증가시키는 방법이다.

  • 수신측으로부터 일정 시간 동안까지 ACK를 수신하지 못하는 경우

타임 아웃의 발생 : 네트워크 혼잡이 발생했다고 인식.

  • 혼잡 상태로 인식된 경우

윈도우의 크기를 즉, 세그먼트의 수를 1로 감소시킨다.
동시에 임계값을 패킷 손실이 발생했을 때의 윈도우 크기의 절반으로 줄인다.

빠른 회복(Fast Recovery)

혼잡한 상태가 되면 Window Size를 1로 줄이지 않고 절반으로 줄이고 선형 증가시키는 방법이다.
빠른 회복 정책까지 적용하면 혼잡 상황을 한번 겪고 나서부터는 순수한 AIMD 방식으로 동작하게 된다.

빠른 재전송(Fast Retransmit)

수신측에서 패킷을 받을 때 먼저 도착해야 할 패킷이 도착하지 않고 다음 패킷이 도착한 경우에도 ACK 패킷을 보낸다. 단, 순서대로 잘 도착한 마지막 패킷의 다음 패킷의 순번을 ACK 패킷에 실어서 보낸다. 따라서 중간에 패킷 하나가 손실되면 송신측에서는 순번이 중복된 ACK 패킷을 받게 된다. 이것을 감지하면 문제가 되는 순번의 패킷을 재전송할 수 있다.

빠른 재전송은 중복된 순번의 패킷을 3개(3 ACK) 받으면 재전송한다. 그리고 이러한 현상이 일어나는 것은 약간의 혼잡이 발생한 것으로 간주하여 Window Size를 절반으로 줄인다.

profile
STAR-LAB

0개의 댓글