복습 - TCP/IP

DW J·2022년 8월 10일
0

review

목록 보기
4/7

1. TCP

1) TCP란?

  • 근거리 통신망이나 인트라넷, 인터넷에 연결 된 컴퓨터에서 실행되는 프로그램간의
    데이터를 안정적, 순서대로, 에러없이 교환할 수 있게 함
  • 패킷이 안전하게 이동할 수 있도록 해주는 규약

2) 흐름 제어

  • 송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법
  • 수신측이 너무 많은 패킷을 수신받지 않도록 하기 위해
  • 수신측에는 패킷을 수신받는 버퍼의 크기가 정해져 있음
  • 송신측의 전송속도가 너무 빨라 한번에 수 많은 패킷을 수신 받으면
    버퍼가 가득차 소실되는 패킷들이 발생

1. Stop And Wait

  • 매번 전송한 패킷에 대한 확인 응답을 받아야만 그 다음 패킷을 전송하는 기법
  • 송신 > 응답 > 송신 > 응답과 같이 응답을 받아야 송신을 함

2. Sliding Window(Go Back n ARQ)

  • 수신측에서 설정한 위도우 크기만큼 송식측에서 패킷 각각에 대한 확인 응답 없이 세그먼트를 전송하게 하고, 데이터 흐름을 동적으로 조절하는 기법
1) 초기화 : 3Way Handsahking을 통해 수신 측 윈도우 크기로 설정되며, 수신측 버퍼에 남아있는 공간에따라 변함.
윈도우 크기는 수신측에서 송신측으로 확인응답(ACK)를 보낼때 TCP헤더에 담아서 보냄

2) 동작방식 : 윈도우에 포함된 패킷을 계속 전송하고, 수신 측으로부터 확인응답(ACK)가 오면
윈도우를 옆으로 옮겨 다음 패킷들을 전송

3) 재전송 : 송신측은 일정 시간 동안 수신 측으로부터 확인응답(ACK)가 없으면, 패킷을 재전송함
만약 송식측에서 재전송을 했는데 소실 된 경우가 아니라 수신측 버퍼에 남는 공간이 없는 경우면 문제가 생김
이를 해결하기 위해 송신측은 해결응답(ACK)를 보내면서 남은 버퍼의 크기를 함께 보냄

3) 혼잡 제어

1. AIMD(Additive Increase/Multicative Decrease)

  • 처음에 패킷을 하나씩 보내고 문제가 없으면 윈도우의 크기를 1씩 증가시켜 전송
  • 만약 문제가 생기면 윈도우의 크기를 반으로 줄임
  • 윈도우의 크기를 조금씩 늘리기 때문에 시간이 오래걸리는 단점이 있음

2. Slow Start (느린 시작)

  • Slow Start는 윈도우의 크기를 1,2,4,8과 같이 지수적으로 증가시키다가 혼잡이 감지되면
    윈도우의 크기를 1로 줄이는 방식
  • 보낸 데이터의 ACK가 도착할 때마다 윈도우의 크기를 증가시킴
  • 처음에는 윈도우의 크기가 조금 느리게 증가하지만 시간이 지나면 지날수록 윈도우의 크기가
    점점 빠르게 증가하는 장점이 있음

3. Fast Retransmit (빠른 재전송)

  • 패킷을 받는 수신자 입장에서는 세그먼트로 분할 된 내용들이
    순서대로 도착하지 않는 경우가 생길 수 있음
  • 위 상황이 발생했을 때 수신측에서는 순서대로 잘 도착한 마지막 패킷의
    다음 순번을 ACK패킷에 싣어 보냄
  • 이러한 중복 ACK를 3개 받으면 재전송이 이루어짐
  • 송신측인 자신이 설정한 시간에 관계없이 패킷을 재전송 할 수 있기때문에
    빠른 재전송을 유지할 수 있음

4. Fast Recovery (빠른 회복)

  • 빠른 회복은 혼잡한 상태가 되면 윈도우 크기를 반으로 줄이고 선형증가 시키는 방법
  • 혼잡상황을 한번 겪고 나면 AIMD방식으로 동작함

4) 혼잡 제어 정책

0. TCP Tahoe / TCP Reno

  • 기본적으로 처음에는 Slow Start방식을 사용하다가 네트워크가 혼잡하다고 느낄때에는 AIMD방식으로 전환하는 방법을 사용하는 정책

1. TCP Tahoe

  • Slow Start를 사용하여 자신의 윈도우 크기를 지수적으로 빠르게 증가시키다가 ACK Duplicated,
    TimeOut이 발생하면 네트워크 혼잡이 발생했다고 판단하고 자신의 윈도우 크기를 1로 수정함

2. TCP Reno

  • Tahoe와 같이 ACK Duplicated, TimeOut이 발생하면 자신의 윈도우 크기를 줄이는데, Duplicated일때는 반으로 줄이고, TimeOut일때는 1로 줄이는 방식

5) 오류제어

1. Stop And Wait

  • 흐름제어 방식과 동일하게 송신측에서 패킷을 보내고 보낸 패킷에 대한 응답이 오면 다음 패킷을 보내는 방식
  • 오류가 발생하면 송신한 패킷을 재전송하는 방식

2. ARQ (Automatic Repeat Request)

  • 재전송을 최대한 적게하는 방식 중 하나로 Go Back N과 Selective Repeat이 있다.
2-1) Go Back N
  • 오류가 발생한 데이터부터 다시 보내는 방식
  • 이미 재전송한 데이터를 다시 보내야 하기때문에 비효율적임
2-2) Selective Repeat
  • 오류가 발생한 패킷만 재전송 하는 방식
  • 수신측의 버퍼에 순서가 보장되지 않는 단점이 있음
  • 이를 해결하기 위해 수신 버퍼에 대한 재정렬이 필요하고 또 다른 공간을 필요로 함

2. IP

1) IP란?

  • 인터넷 상에서 데이터를 주고 받기 위해 모든 컴퓨터가 가지는 주소
  • OSI 7계층 중 3계층 (네트워크 계층)

2) IP vs IP주소

  • IP : 패킷 데이터를 주고 받기 위한 통신 프로토콜
  • IP주소 : 네트워크에서 데이터를 주고 받기 위한 주소

3) DNS?

  • 도메인 네임 시스템 (Domain Name System)은 IP주소와 URL을 매칭시켜서 갖고 있는 시스템
    사람이 기억하기에 IP숫자보다 문자가 더 편하기 때문에 문자로 된 도메인 이름을 IP주소로 변환
    ex) 검색창에 www.naver.com 입력 > DNS서버 > 해당 웹 사이트 IP주소 변환

4) IPv4

  • 0.0.0.0 ~ 255.255.255.255 까지 사용이 가능한 IP주소 체계
  • 2의 32제곱으로 약 42억개 생성가능
  • 처음 만들 당시에는 갯수가 충분할 것으로 생각했으나, 전자기기의 폭발적인 증가로 거의 고갈됨
  • IPv4 대체 > IPv6는 2의 128제곱으로 거의 무한대에 가깝게 생성 가능
  • 기존 IPv4를 완전히 대체하기까지 시간이 걸림. 현제 상용화 단계

5) IP 대역에 따른 클래스

  • A클래스 : 대규모 네크워크 / 1 ~ 126 / 서브넷 마스크 - 255.0.0.0
  • B클래스 : 중규모 네트워크 / 129 ~ 191 / 서브넷 마스크 - 255.255.0.0
  • C클래스 : 소규모 네트워크 / 129 ~ 223 / 서브넷 마스크 - 255.255.255.0
  • D클래스 : 연구/개발 네트워크 / 223 ~

※ 서브넷 마스크

  • IP주소를 각 클래스별로 나누기 위한 구분 값
  • 동일한 IP주소라도 서브넷 마스크로 A, B, C클래스 등으로 나눔
  • 동일한 IP주소 서브넷 마스크 구분 예)
    A) 123,456,7,0 (비트연산) 255.0.0.0 = 123.0.0.0 > A클래스 IP주소
    B) 123.456.7.0 (비트연산) 255.255.0.0 = 123.456.0.0 > B클래스 IP주소

6) 공인IP / 사설IP

공인IP

  • 공개형 IP / 가정용
  • 공개형으로 보안에 취약함(방화벽 설정필요)
  • IP를 제공하는 서비스 업체에서 보안 제공

공인IP를 할당받은 가정에서 공유기를 사용하면 해당 공유기에서 각 전자기기로 IP를 생성하여 할당하는데 이때 각각의 전자기기로 할당되는 IP는 사설IP(보안때문에)로 할당이 됨

사설IP

  • 외부에서 접근할 수 없는 IP
  • 사설IP는 A, B, C로 나눌 수 있는데 각각 IP주소가 정해져 있음
    A : 10.xxx.xxx.xxx
    B : 172.10.xxx.xxx
    C : 192.168.xxx.xxx

7) 고정IP / 유동IP

고정IP

  • 사용자가 직접 설정
  • 변경하면 안되는 서버에 직접 설정하여 사용
    ex) 변경되면 안되는 서버, 네트워크 프린트 등등

유동IP

  • 자동으로 설정
  • DHCP(Dynamic Host Configuration Protocol) 동적 호스트 구성 규약
    IP주소와 게이트웨이 또는 네임서버의 주소 정보를 자동으로 할당해주는 프로토콜

유동 IP 할당 과정

  • 컴퓨터 부팅 -> DHCP서버에 IP주소 할당 요청 -> IP주소 전달 -> 설정
  • 컴퓨터가 부팅 될 때마다 매번 요청하지만 이전 IP주소를 재할당 받는 경우가 많음

8) 라우터

  • 컴퓨터와 컴퓨터간에 데이터 패킷을 전송(네트워크 통신)하기 위한 하드웨어 장치
  • 네트워크 통신을 위한 중계역할을 담당

라우팅

  • 라우터에서 찾은 경로 중 최적의 경로를 선택하는 과정 (최단거리 or 빠른시간 등)
  • 라우팅의 구성 요소
    패킷 : 네트워크 회선에서 데이터의 한 묶음 단위
    네트워크 주소 : 목적지의 주소
    다음 게이트웨이 : 패킷을 전송할 주소 (서브넷 마스크)
    인터페이스 : LAN, WAN, 가상 등을 연결하는 포로토콜

라우팅 종류

  • 정적 라우팅
    관리자가 지정한 경로대로 데이터를 전송
    정해진 경로대로 동작하고 라우팅 테이블이 변경, 교환 되지 않아 속도가 빠르고 성능이 우수함

  • 동적 라우팅
    라우터가 알아서 최적의 경로를 찾아 데이터를 전송
    지정한 경로가 아닌 가장 좋은 경로를 계산함
    동적으로 경로가 변경 될 수 있기때문에 라우팅 테이블이 업데이트 되고 교환하기 때문에
    라우터의 부담이 큼

※ 라우팅 테이블

  • 네트워크상 특정 목적지까지의 거리와 가는 방법을 명시하고 있는 테이블
  • 라우터가 목적지로 이동할 때 라우팅 테이블을 이용하여 찾아가게 됨
profile
잘하는것보다 꾸준히하는게 더 중요하다

0개의 댓글