Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

jjj

네트워크 정리 본문

CS/네트워크

네트워크 정리

JJJJ123 2018. 10. 26. 15:49

네트워크란

  • 컴퓨터와 컴퓨터가 그물망처럼 통신 매체로 연결되어서 데이터를 운반하는 것

  • 큰 데이터를 작게 나누어서 송신

    • 패킷이 회선을 점유하는 시간이 짧아짐

    • 복수의 컴퓨터가 회선을 공유할 수 있음

  • 리소스를 공유

LAN과 WAN

  • LAN (Local Area Network)

    • 하나의 라우터로 연결된 네트워크

  • WAN (Wide Area Network)

    • 떨어져있는 LAN끼리 통신사업자의 통신 케이블을 빌려서 연결한 네트워크

    • 인터넷은 WAN의 대표

OSI 참조모델

  • 계층이 각각 독립되어 있고, 어떤 계층의 프로토콜 변경이 다른 계층에 영향을 끼치지 않음

    (HTTP 통신을 해도 전송 계층이 TCP 혹은 UDP일 수 있음)

캡슐화

  • 데이터와 데이터를 보내기 위해 필요한 것들( 수신, 송신 주소 같은 것)이 통합된 상태를 프로토콜 데이터 유닛이라고 한다.

  • 7개 계층을 수행하여 캡슐화 되어 데이터 통신이 가능해짐

1계층 : 물리 계층

  • 케이블이 연결되어 있느 ㄴ기기에 신호를 전달하는 것이 1계층의 역할

    • 데이터(비트)를 신호로 변환

    • 신호를 데이터로 변환

    • 인터페이스

  • 파이프인 케이블과 거기로 보내는 신호 등의 규칙에 따라 실제로 상대에게 데이터를 전달하는 역할

2계층 : 데이터 링크 계층

  • 신호가 닿는 범위에서의 데이터 전송에 관한 규정 ( 세그먼트 범위에서의 데이터 전송)

    • 세크먼트 범위에서 어떻게 데이터를 송수신 할지

  • 세그먼트 범위

    • 컴퓨터와 라우터, 라우터와 라우터 사이

  • 데이터 전송 방법 3종류

    • 유니캐스트 : 1대1 데이터 통신

    • 브로드캐스트 : 1대 전체, 모두에게 메시지를 보내는 데이터 통신

    • 멀티캐스트 : 1대 다, 지정된 여러개의 기기로 메시지를 모배는 데이터 통신

  • 각각의 기기는 유니캐스트 주소를 적어도 한개 가지고 있다.

    • 라우터는 인터페이스마다 유니캐스트 주소를 가지고 있음

이더넷

  • 이더넷에서 사용하는 주소는 MAC주소이다.

  • MAC주소는 인터페이스에 지정된 고정 주소이다.

    • 따라서 인터페이스를 교환하면 MAC주소도 변한다.

    • MAC 주소는 48 비트이고, 4비트마다 16진수로 표현한다.

  • 이더넷 프레임

    • 이더넷 헤더와 이더넷 트레일러를 데이터그램에 붙여서 이더넷 프레임으로 캡슐화한다.

    • 수신처 MAC 주소, 송신처 MAC 주소 (이더넷 헤더), 타입, 페이로드, 트레일러

  • 스위치 (2계층 스위치, 이더넷 스위치)

    • 수신한 프레임을 따로따로 보낼 수 있도록 처리해서 충돌을 막는 것

    • MAC 주소 필터링과 버퍼링을 통해

    • 스위치는 포트에 연결되어 있는 컴퓨터의 MAC 주소를 기억 (어드레스 테이블)

    • 프레임의 수신처 MAC주소를 보고 그 포트에만 프레임을 송신

    • 다른 수신처로 보내는 것을 막을 수 있음

    • 같은 수신처는 버퍼에 일시적으로 저장해놓고 보낸다.

  • 전이중 이더넷

  • 네트워크내의 컴퓨터끼리는 2계층에 의해 연결되어 있다.

3계층 : 네트워크 계층

  • 세그먼트간에서의 데이터 송수신

  • 즉, 라우터와 라우터사이의 데이터를 송수신하는 것

  • 라우터를 넘어서는 브로드캐스트는 송신되지 않음

  • 네트워크간에서의 데이터 송수신을 인터넷작업이라고 한다.

  • 즉, 3계층은 인터넷 작업을 수행

  • 2계층에서는 MAC주소라는 물리주소를 사용

  • 3계층에서는 IP주소라는 논리주소를 사용

  • 즉, 2개의 주소를 사용

  • 라우팅: 수신처까지 어떤 경로로 갈지 결정 (경로 선택)

인터넷 프로토콜 (IP)

  • IP 헤더

    • 버전, 헤더 길이, 서브시 타입, 데이터 길이, ID, 플래그, 플로그먼트 오프셋, TTL, 프로토콜 (상위 프로토콜), 헤더 체크섬, 송신처 IP주소, 수신처 IP주소, 옵션

  • 페이로드

    • 상위 4계층 PDU 등이 들어간다

  • 논리주소

    • 네트워크 관리자에 의해 네트워크에 접속할 때마다 붙는 것

    • 소속된 네트워크가 변경되면 논리주소도 변경

    • 논리주소도 유니캐스트, 멀티캐스트, 브로드캐스트의 3종류 주소가 있음

  • IP주소

    • 32비트로 네트워크 번호의 컴퓨터 번호를 나타냄

    • IP주소는 네트워크 번호, 호스트 번호 (컴퓨터 번호) 로 구성되어 있고

      • 호스트 번호가 전부 0 : 소속된 네트워크 자체를 표시하는 주소 ( 네트워크 주소)

      • 호스트 번호가 전부 1: 소속된 호스트 모두를 표시하는 주소 (브로드 캐스트 주소)

    • 서브네트워크

      • 네트워크를 여러개의 작은 서브네트워크로 분할

      • 서브넷마스크

        • 서브넷마스크 비트열을 IP주소와 동시 표기

        • 서브넷 마스크는 IP 주소 중에 어디까지가 서브넷 번호인지를 나타냄

        • 네트워크 번호, 서브넷 번호의 비트를 1, 호스트 번호를 0

        • 서브넷마스크의 비트가 1인 부분이 네트워크 번호

    • 이더넷을 사용하여 IP 데이터 그램을 송수신하기 위해서는 4개의 주소가 필요

      • 수신처 MAC 주소

        • ARP

      • 송신처 MAC 주소

        • 인터페이스에 고정된 주소

      • 수신처 IP 주소

        • DNS

      • 송신처 IP 주소

        • 수동 IP

        • DHCP

DHCP ( Dynamic Host Configuration Protocol)

  • IP 주소가 자동으로 컴퓨터에 할당되는 방법

  • 할당할 IP주소를 관리하고, 실제로 할당 작업을 수행하는 서버하고 할당 받는 클라이언트로 이루어진다.

  • DHCP 서버 소프트웨어, 클라이언트 소프트웨어

  • DHCP메시지

    • 이더넷 헤더 / IP헤더/ UDP헤더 / DHCP메시지

    • 동작 방법

      • 클라이언트는 DHCP DISCOVER 메시지를 브로드캐스트

      • DISCOVER를 받은 서버는 할당할 IP주소를 풀에서 선택해서 클라이언트에게 브로드 캐스트 (DHCP OFFER)

      • OFFER를 받은 IP주소가 문제가 없으면 DHCP REQUEST를 서버에 브로드캐스트

      • REQUEST를 받은 서버는 문제가 없으면 DHCP ACK을 보냄, 그 때 서브넷 마스크등 옵션 설정도 ACK에 넣어서 보냄

ARP (Address Resolution Protocol)

  • IP주소의 호스트에게 MAC 주소를 알려달라는 프로토콜

  • ARP요청은 브로드캐스트로 네트워크내의 모든 컴퓨터로 송신

  • 수신처의 MAC주소를 알 수 있음

  • ARP테이블

    • ARP테이블에 IP주소에 맞는 MAC주소 저장

    • 300초 동안만 저장

    • ARP -a로 확인 가능

  • DNS (Domain Name System)

    • 도메인명과 IP 주소를 대응시킨 시스템

  • 요약

    • DHCP, ARP,DNS를 사용하여 4개의 주소를 결정한다.

  • 라우팅

    • MAC 주소는 같은 네트워크내에서의 수신처

    • IP주소는 수신처의 컴퓨터를 결정

    • 첫 수신 MAC주소는 네트워크 안에서 중계를 해주는 장치 ( 라우터(기본 게이트웨이) MAC 주소)

    • 홉 바이 홉

      • 홉은 라우터를 가리키는 용어

      • 라우터는 해당 논리주소까지 가기위한 경로를 지정 ( 다음 경로만)

      • 라우터는 다음 수신처를 결정하고 이것이 견결되어 경로가 된다.

  • 컴퓨터가 송신하는 규칙

    • 다른 네티워크 수신이면 라우터

    • 동일 네트워크 수신이면 직접 통신

라우터

  • 복수의 인터페이스를 가지고 있으며, 각각 다른 IP주소를 가진다.

  • 복수의 네트워크끼리 연결하는 역할

  • 필터링기능

    • EX) 실습실의 네트워크에서는 사무실의 네트워크로 데이터 전송을 하지 못하게

  • 라우팅 테이블

    • 수신처 네트워크까지의 거리

    • 다음에 도달하는 라우터

    • 그 라우터에 연결되어 있는 자신의 인터페이스

    • 등등

  • 라우터 동작

    • 라우팅 테이블에서 다음 수신처가 되는 라우터, 송신할 인터페이스를 결정한다.

    • 최장일치의 룰

      • 수신처 IP주소와 가장 일치하는 것을 선택

      • 프리픽스 길이까지 일치한 것 중에서도 가장 프리픽스 길이가 긴 경로를 사용

  • 브로드캐스트 도메인

    • 브로드캐스트가 도달하는 범위

  • 충돌 도메인은 스위치가 구분, 브로드캐스트 도메인은 라우터가 구분

디폴트 게이트웨이

  • 네트워크의 출입구

  • 디폴트 게이트웨이로 데이터를 보내서 다른 네트워크로 전송

  • 즉, 컴퓨터가 다른 네트워크와 통신할 때 최초로 데이터를 보내는 수신처는 디폴트 게이트웨이

  • 컴퓨터는 다른 네트워크에 데이터를 송신할 떄 디폴트 게이트웨이로 ARP를 수행

  • 라우터는 다른 네트워크로의 브로드캐스트를 막음

  • 동작 방법

    • 다른 네트워크에 데이터를 보내는 경우, 호스트는 디폴트 게이트웨이로 ARP를 수행해서 디폴트 게이트웨이의 MAC 주소를 입수

    • 호스트는 수신처 MAC 주소를 디폴트 게이트웨이로, 수신처 IP 주소를 수신처 호스트로 지정해서 패킷을 보냄

    • 수신받은 디폴트 게이트웨이는 라우팅을 하고, 중계 라우터, 송신포트를결정하여 다음에 수신받을 상대(중계 라우터 또는 수신처)에게 ARP를 수행

    • ARP에 의해 입수한 MAC 주소를 수신처 MAC주소로, 자기자신의 MAC주소를 송시처 MAC주소로 갱신하여 송신 IP주소는 변경되지 않음

  • 컴퓨터는 디폴트 게이트웨이의 IP주소를 미리 설정해 둠

    • 그 설정 방법은 수동이나 DHCP

라우팅 테이블

  • 수신처 네트워크, 중계지점, 메트릭, 수신처의 출구가 기재되어 있음

  • 수신처 네트워크 주소와 라우팅 테이블을 비교해서 경로를 찾음

  • 수신처 네트워크가 없을 경우 데이터그램을 파기함

  • 정적 라우팅과 동적 라우팅

    • 정적 라우팅

      • 수동으로 라우팅 테이블 갱신

        • 해당 경로에 장애가 있어도 처리 불가

    • 동적 라우팅

      • 라우터가 자동으로 정보를 서로 교환해서 경로를 알아내는 방법

      • 모든 경로 중에서 자동으로 최적의 경로를 선택해서 라우팅 테이블을 작성

      • 단점

        • 라우터끼리 정보를 교환해야함 -> 회선 전송 압박

        • 서로 교환한 정보를 가지고 최적의 경로를 계산해야함

        • 모든 라우터가 동일한 정보를 가져야 함 (컨버젼스)

    • 라우팅 프로토콜

      • 동적 라우팅을 실현할 수 있는 프로토콜

      • 근접해 있는 라우터간의 네트워크 정보를 서로 교환하기 위한 규칙

      • 교환한 정보를 근거로 라우팅 테이블을 변경

      • 자율화 시스템 (Autonomous System)

        • 하나의 관리 단체에 의해 관리되는 네트워크 집합체

        • 복수의 네트워크를 통합해서 큰 단위의 라우팅을 수행한다.

      • 메트릭

        • 수신처 네트워크까지 통과하는 라우터 개수

        • 최적의 경로를 결정할 때의 판단 기준

        • 최소 값을 갖는 것을 최적의 경로로 결정

        • 라우팅 테이블에는 최적의 경로만 저장되어 있음

      • RIP

        • 디스턴스벡터형 라우팅 프로토콜

        • 라우팅 업데이트

          • 라우터가 다른 라우터와 데이터를 교환하는 정보

          • 라우팅 에이블을 그대로 교환함

          • 30초에 1번

          • 6번 수신 받지않으면 그 루우터에는 장애가 발생했다고 간주해서 그 라우터를 사용하는 경로들을 파기함

          • 알고 있는 경로의 정보를 입수한 경우 메트릭으로 판단

ICMP (Internet Control Message Protocol)

  • 인터넷 제어 메시지 프로토콜 (에러 보고 프로토콜)

  • 네트워크 제어, 관리 등을 수행하는 프로토콜

    • 호스트A가 호스트B에 IP 패킷을 송신하고 싶지만, 라우터는 호스트B가 있는 네트워크의 경로를 모른다.

    • 라우터는 수신처에 도달할 수 없다는 것을 나타내는 송신 불능 메시지를 ICMP로 호스트A에게 통지

  • 보통 IP 데이터ㅡ램의 페이로드에는 TCP 세그먼트나 UDP 데이터그램이 들어가지만 이것들 대신에 ICMP 메시지를 넣어서 보낸다.

  • TTL (Time To Live)

    • IP 데이터그램의 TTL은 라우터를 경유할 때마다 1만큼씩만 줄어들고, 0이되면 그 데이터 그램이 파기된다.

    • 보통 Linux는 64, Windows는 128개

  • Echo

    • ping

    • 걸리는 시간을 측정해서 네트워크 상태를 조사할 수 있다.

  • Time Exceeded

    • TTL이 0이 되어 파기되었을 때

    • traceroute

      • 수신처까지의 경로를 가르쳐주는 소프트웨어

      • 수신처에 도달하기까지 경유하는 라우터를 알려줌

      • TTL 1,2,3,4 .. 로 패킷을 보냄

        • TTL이 0이 되면 송신 IP에 Time Exceeded를 송신하기 때문

4계층 : 전송 계층

  • 1계층 ~ 3계층

    • 수신처 컴퓨터에 데이터를 보내는 것

  • 데이터를 운반하는 직접적인 동작을 하지 않음

  • 전달할, 전달된 데이터에 대해 필요한 처리를 한다

  • TCP와 UDP가 있다.

TCP

  • TCP 헤더

    • 송신처 포트 번호 ( 16비트) / 수신처 포트번호(16비트)

    • 시퀀스 번호(32비트)

    • 확인응답 번호(32비트)

    • 데이터오프셋(4비트) / 예약(6비트) / 플래그(6비트) / 윈도우(16비트)

    • 체크섬(16비트) / 긴급포인터(16비트)

  • TCP의 커넥션

    • 애플리케이션간의 송수신을 하는 데이터의 길

    • 라우팅에서의 경로와는 다른개념, 가상 통신로임

    • 3계층까지는 상대가 수신 준비가 되어 존재하는지 모르는 상태로 보냄

      • 즉, 에러처리를 하지않고 파기함

    • 데이터 전송을 시작하기 전에 미리 확인을 주고받아 두는 것, 상대에게 확실하게 전달하는 것을 확인

    • 쓰리웨이 핸드 쉐이킹

  • 세그먼트 분할

    • TCP는 애플리케이션으로부터 받은 데이터를 세그먼트로 캡슐화

    • 이 때, 한 개의 데이터를 MSS(Max Segment Size)로 분할

      • 평균적인 인터넷의 경우, 최대 데이터 크기는 1500 옥텟, 여기서 IP 헤더(20옥텟), TCP헤더(20옥텟)을 뺀 1460 옥텟

    • 한 개의 데이터가 복수의 세그먼트가 된다.

    • 각각의 세그먼트에 번호를 부여한다 -> 시퀀스 번호

      • MSS가 1000이라면 1, 1001, 2001 ...

  • 에러 복구

    • 시퀀스 번호는 보내는 데이터의 앞 부분에 있는 옥텟 번호이고, 확인응답 번호는 다음에 받고 싶은 데이터의 선두 옥텟 번호

    • RTT내에 오지 않으면 재전송

  • RTT (Round Trip Time)

    • 지금까지 보낸 데이터에 대해 확인 응답이 돌아오기까지 걸린 시간으로 계산

      • 회선속도에 따라 시간이 달라져야 한다.

    • 초기값은 따로 지정

  • 윈도우 제어

    • 세그먼트송신 -> 확인 응답의 흐름은 너무 비효율적임

    • 복수의 세그먼트 전송 -> 확인응답이 더 효율적임

    • 연속해서 세그먼트를 보냄으로써 효율성이 좋은 전송을 수행

    • 정확, 확실하게 또 효율적으로 보내기 위해 TCP는 흐름제어의 하나인 윈도우 제어를 한다.

    • 수신한 데이터를 일시적으로 보관하기 위한 버퍼가 있음

    • 버퍼사이즈를 전함으로써 송신할 수 있는 데이터 양을 알려준다

      • 윈도우 사이즈라고 함

      • 윈도우 사이즈만큼의 데이터를 한번에 보내도 오버플로 하지 않는단느 것을 알 수 있음

      • 윈도우 사이즈 : 확인응답을 기다리지 않고 보낼 수 있는 데이터 양

  • 애플리케이션간 통신

    • 포트번호

      • 포트번호를 사용해서 어느 애플리케이션으로부터 송신, 수신 되었는지 결정

      • IP주소와 MAC주소만으로는 애플리케이션을 식별할 수 없다

      • 포트는 16비트, 즉 65,536개가 있다

      • 송신처의 포트번호는 49152 ~ 65535번 까지의 번호가 할당

  • TCP의 단점

    • 확인응답을 기다려야함 -> 일정시간 기다려야함

  • UDP

    • UDP는 TCP의 시퀀스 번호, ACK번호, 윈도우 사이즈, 제어비트도 없다.

    • UDP헤더

      • 송신처 포트 번호(16비트), 페이로드 사이즈(16비트)

    • 아무것도 하지 않는 프로토콜

    • 정확, 확실 하지 않음

    • 따라서 고속

    • 고속성이나 실시간 송수신이 필요한 애플리케이션에 많이 쓰임

      • 인터넷 전화, 스트리밍..

    • 브로드캐스트를 할 때 사용

  • NAT (Network Address Translation)

    • 네트워크 주소 변환

    • 내부 네트워크에는 사설 IP주소를 할당

    • TCP/IP 통신을 하기위해

      • IP 주소가 필요하기 때문

  • NAPT (Network Address Port Translation)

    • 하나의 글로벌 IP주소로 복수의 컴퓨터를 접속 가능하게 해준다.

    • 포트 번호도 변환함으로써 복수의 컴퓨터와 동시 접속이 가능해진다.

      • IP주소를 변환할 때 포트 번호도 변환, 그 대응을 NAT 테이블에 기재

        • 192.168.0.1:1024 <-> 200.100.10.5:6001

        • 예시

        • 송신처 IP 주소 송신처 포트 수신처 IP 주소 수신처 포트
          192.168.0.1 1024 1.0.0.1 80
          송신처 IP 주소 송신처 포트 수신처 IP 주소 수신처 포트
          200.100.10.5 ( 글로벌 IP ) 6001 1.0.0.1 80
        • 응답의 경우, IP 주소와 포트 번호를 NAT 테이블에서 확인하고, IP 주소와 포트 번호를 변환

    • 보안 측면의 효과도 있음

    • FTP에 단점

      • FTP에서도 물론 IP 헤더에 수신처와 송신처 IP 주소, TCP 헤더에 수신처와 송신처의 포트 번호가 사용되지만, 데이터 부분에도 송신처의 IP주소와 포트 번호가 기술된다.

      • FTP는 데이터에 있는 IP주소와 포트번호를 사용하여 통신, 사설IP로 되어있으면 사설 IP 주소에 보내게 된다.

      • NAPT가 개별적으로 대응한다.

5계층 : 세션 계층

  • 애플리케이션 간의 의논의 관리

    • FTP는 2개의 커넥션을 사용해서 파일을 주고받음

      • 제어 커넥션, 데이터 전송 커넥션

    • 다이얼로그 제어

      • 대화가 성립하도록 제어

      • 말할 차례, 들을 차례같은 것들을 정해서 대화함

6계층 : 표현 계층

  • 애플리케이션 목적에 맞는 데이터 형식

  • 문자,영상, 동영상, 음성

  • 문자

    • ASCII

  • 6계층에서 변환을 해서 하드웨어랑 OS에 따른 차이를 없앤 데이터 교환

    • ASCII와 EBCDIC를 사용하는 컴퓨터가 통신 할 수 있게 해준다.

  • 압축이나 암호화를 수행, 데이터 형식의 전송을 위한 변환을 한다.

7계층 : 응용계층

  • 네트워크 서비스를 제공하는 계층

  • 목적에 따른 프로토콜이 준비되어 있음

    • HTTP, FTP, SMTP 등을 결정


Comments