LostCatBox

네트워크 지식 01

Word count: 4.5kReading time: 28 min
2020/05/07 Share

네트워크 지식 01

자세히

상식

  • LAN - Local >어느 한정된 공간에서 네트워크를 구성하는것 (사무실 네트워크구성)

  • WAN - 서로 멀리 떨어진 곳을 네트워크로 연결하는 것

  • 이더넷 - 네트워킹의 한 방식 (우리나라에서는 거의 대부분 이더넷 방식사용),

    이더넷 방식의 가장 큰 특징은 CSMA/CD라는 프로토콜을 사용하여 통신

    (다른 네트워킹의 방식으로 이더넷, 토큰링, FDDI가 있는데 각 방식에 따라 랜카드부터 네트워크 장비들을 다르게 구입해야함)

※ CMSA/CD 통신 순서 요약

  1. 이더넷 환경에서 통신하고 싶은 PC, 서버는 지금 네트워크에 통신이일어나는지 확인

    (이를 Carrier Sense라고 함, 캐리어는 네트워크상의 나타나는 신호임)

  2. 캐리어가 감지되면(누군가 통신을 하고있으면) 자기가 보낼 정보를 보내지 않고 기다림

    캐리어가 감지가 되지 않으면 무작정 자기가 보낼 정보를 네트워크상에 보냄

  3. 만약 다른 PC,서버도 같이 보냈을 경우를 Multiple Access(다중접근)이라고 함

    또한 두개 이상의 장비가 데이터를 보내려다 부딪힌 경우를 Collision(충돌)이 발생했다함

  4. 따라서 이더넷에서는 충돌이 발생하지 않게 데이터를 보낸뒤 콜리전이 발생 하지 않았는지 점검한다.
    이걸 Collision Detection(충돌감지)라고 한다.

  5. 콜리전이 발생할 경우 데이터를 전송한 PC들은 랜덤한 시간동안 기다린 다음 다시 데이터를 보냄
    (이 시간은 사람이 감지하기 힘듬)

  6. 계속해서 충돌이 일어나면 5번을 반복함

  • 토큰링(네트워킹방식의 한 종류)

    이더넷과 다르게 한 네트워크상에 딴 한개 존재한 토큰으로 돌아가며 데이터를 보냄(토큰이 몇개 되는경우도 있음)(토큰을 가지고있는 컴퓨터만 데이터를 보낼수있으므로 충돌은 일어나지않지만 받을때까지 기다려야하므로 존나느려 안씀)

  • 케이블

    케이블은 장비와 장비의 연결에는 어디에나 들어감

    (pc에서 허브나 스위치까지의 연결, 스위치-스위치, 스위치-라우터)

    (UTP, STP등 존재)

    • 케이블의 종류 : 10 Base T, 10 Base 2 등

      10 Base T : 10Mbps로 통신하고 최대 전송 거리 100미터인 UTP 케이블

      10 Base 2 : 10Mbps로 통신이 가능하고 최대 전송거리 200미터인 케이블

  • 맥 어드레스(MAC Address)

    • 통신을 위해서 서로를 구분할 일종의 주소

    • Q) 앞에서는 TCP/IP로만 통신을 한다던데?

      A) 물론 인터넷은 TCP/IP로 통신을 함. 즉, 통신을 위해 IP주소를 사용하지만 맥 어드레스도 사용함

      우리는 IP주소를 다시 MAC주소로 바꾸는 절차 ARP(Address Resolution Protocol)를 사용중임(즉, 네트워크상에서 IP주소를 물리적 네트워크 주소로 대응시키기 위해 사용되는 프로토콜이다. 여기서 물리적 네트워크 주소는 이더넷또는 토큰링의 48비트 네트워크 카드 주소를 뜻함(MAC))

      MAC 주소는

      00-60-97-8F-4F-86

      00:60:97:8F:4F:86

      0060.978F.4F86

      와 같이 8자리 마다 하이픈,콜론,점으로 구분되어짐

      앞에 6자리는 생산자를 나타내는 코드 (OUI, 회사 제품 넘버)

      뒤에 6자리는 메이커에서 각 장비에 분배하는 Host Identifier이다.(시리얼 넘버)

      즉, 맥 주소 중에서 앞쪽 반은 미리 약속된 규정에 따라 각 네트워크 장비를 만드는 회사에 분배해주고 그 회사에서는 나머지 반을 일련 번호를 만들어 각 장비에 부여하는 것임

      이를테면, IP 호스트 A가 IP 호스트 B에게 IP 패킷을 전송하려고 할 때 IP 호스트 B의 물리적 네트워크 주소를 모른다면, ARP 프로토콜을 사용하여 목적지 IP 주소 B와 브로드캐스팅 물리적 네트워크 주소 FFFFFFFFFFFF를 가지는 ARP 패킷을 네트워크 상에 전송한다. IP 호스트 B는 자신의 IP 주소가 목적지에 있는 ARP 패킷을 수신하면 자신의 물리적 네트워크 주소를 A에게 응답한다.

      이와 같은 방식으로 수집된 IP 주소와 이에 해당하는 물리적 네트워크 주소 정보는 각 IP 호스트의 ARP 캐시라 불리는 메모리에 테이블 형태로 저장된 다음, 패킷을 전송할 때에 다시 사용된다. ARP와는 반대로, IP 호스트가 자신의 물리 네트워크 주소는 알지만 IP 주소를 모르는 경우, 서버로부터 IP주소를 요청하기 위해 RARP를 사용한다.

  • 유니캐스트, 브로드캐스트, 멀티캐스트

    • 유니캐스트(Unicast)

      데이터를 보내고자 하는 PC의 맥 어드레스 : 00-60-80-AA-BB-CC

      데이터를 받고자 하는 PC의 맥 어드레스 : 00-60-80-DD-EE-FF

      유니캐스트 통신 방식은 받는 PC가 하나여야 한다. (편지 생각)

      1. 어떤 PC가 유니캐스트 프레임을 뿌이게 될 경우 로컬 네트워크 상에 있는 모든 PC들은 일단 이 프레임을 받아들여서 랜카드에서 자신의 맥 어드레스와 비교

      2. 자신의 랜카드 맥 어드레스와 목적지 맥 어드레스가 서로 다른경우 바로 그 프레임을 버림

        (CPU에 영향이 X, PC의 성능저하 X)

      3. 만약 자신의 랜카드 맥어드레스와 목적지 맥 어드레스가 서로 일치할경우 랜카드는 이 프레임을 CPU로 올려보냄

        (유니캐스트는 현재 네트워크에서 가장 많이 사용되는 통신 방식임)

    • 브로드캐스트(Broadcast)

      브로드 캐스트는 유니캐스트와 다르게 로컬 랜 상에 붙어있는 모든 네트워크 장비들에게 보내는 통신임 (로컬 랜이란 라우터에 의해서 구분지어진 공간, 즉 브로드캐스트 도메인이라는 공간)

      브로드 캐스트는 통신의 대상이 특정 장비가 아닌 내가 살고 있는 네트워크 안의 모든 네트워크 장비들에게 통신할 때 쓰기 위한 방식임 (받는사람이 브로드캐스트 도메인 내 모든 네트웍 장비)

      쉽게 생각해서 이장님의 마이크 방송을 생각하면됨

      듣기 싫어도 무조건 듣게됨

      이처럼 브로드 캐스트 주소(FFFF.FFFF.FFFF)가 자신의 맥 어드레스와 달라도 패킷을 CPU에 보낸다. 그 후 CPU가 알아서 이 패킷을 처리함

      결국 CPU의 성능저하를 불러옴

      브로드캐스트는 어떤경우에 발생하는가? (ARP!)

      A) 예를들어 처음 2개의 PC간에 통신을 하는경우 상대편의 IP주소는 알아도 맥 어드레스는 모름

      이 경우에 상대편의 맥 어드레스를 알아내기 위해서 ARP(IP주소를 맥 주소로 변환)를 한다.

      이때 브로드 캐스트가 발생함

    • 멀티캐스트(Multicast)

      만약 200명의 사용자가 있는 네트워크에서 150명에게만 같은 정보를 동시에 보내야 하는 상황이라고 가정해보자

      방법 1) 유니캐스트 이용

      유니캐스트는 1:1이기때문에 같은 데이터를 총 150번 보내야하므로 네트워크 트래픽을 가중시킴

      방법 2) 브로드캐스트 이용

      브로드캐스트는 전체를 상대로 보내기때문에 유니캐스트 처럼 150번 반복은 아니어도 200명중 남은 50명이 쓸모없는 데이터를 받게된다. 브로드캐스트는 CPU로 올려보내기에 PC 성능을 저하시킴

      방법 3) 멀티캐스트

      보내고자 하는 인원들에게만 한번에 보낼수 있기 떄문에 이런 경우 제일 유용함

OSI 계층 구조

자세히

네트워크는 기기간, 기기와 서버간 통신

스크린샷 2020-05-07 오후 12.50.45

데이터 단위

  • PDU(Protocol Data Unit)는 동일 계층 간에 교환되는 정보의 단위
  • SDU(Service Data Unit)은 상,하위 계층끼리 주고 받는 정보의 단위

각 계층별 기능

  • Physical Layer(물리계층)

    실제, 전기적 특성에 대한 규칙을 정의, 물리적 전송 매체와 전송 신호 방식 정의

    대표적인 장치 : 통신 케이블 , 리피터, 허브

  • Data Link Layer(데이터 링크 계층)

    두 개의 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할수 있도록함.

    따라서 통신 오류도 찾고 재전송하는 기능이 있음, 또한 맥 어드레스를 가지고 통신 할 수 있게 해줌 (사용되는 통신 단위는 프레임)

    대표적인 장치 : 브리지, 스위치

  • 네트워크 계층(Network Layer, 망 계층)

    개방 시스템들 간의 네트워크 연결을 관리하는 기능과 데이터의 교환 및 중계 기능

    이 계층은 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할이다.

    • IP패킷의 전달 및 라우팅을 담당하고 패킷을 목적지까지 전달하는 역할하는 IP계층도 네트워크 계층의포함됨.

    대표적인 장치 : 라우터, 스위치

  • 전송 계층(Transport Layer)

    종단 시스템(End-to-End)간에 투명한 데이터 전송을 가능하게 합니다.

    TCP, UDP 등의 표준이 존재함

    TCP 소켓도 이때 사용됨

    자세히

    자세히2

    패킷 생성(Assembly/Sequencing/Deassembly/Error detection/Request repeat/Flow control) 및 전송 담당 계층(상위계층안봐도 전송 계층이 유효한지만 판단하면되도록 설계됨.)

    네트워크 상에서는 무수히 많은 데이터가 오고가고, 그에 따라 트래픽 혹은 여러가지 기타 이유로 인하여 패킷이 손실할 수 있는 가능성이 많습니다. 이러한 패킷손실에 대하여 TCP는 신뢰적인 데이터 전송 메카니즘을 가지고 있습니다.

    UDP 프로토콜의 경우에는 비신뢰적인 네트워크 통신방식이므로 에러를 검출해낼 수 없습니다.

    TCP 프로토콜이 신뢰적인 통신 연결방법이므로 이 TCP통신에서 데이터가 전송 될 때 패킷이 깨질 수 있는 가정으로 두어야 합니다.

    # 프로토콜이란?

    • 대화의 규칙(통신 규약. 신호 송신의 순서, 데이터의 표현법, 오류(誤謬) 검출법 등을 정함)
  • 세션 계층(Session Layer)

    애플리케이션 간에 세션을 구축하고 관리하면 종료시키는 역할을 합니다.

  • 표현 계층(Presentation Layer)

    응용 계층으로부터 받은 데이터를 세션 계층에 보내기 전에 통신에 적당한 형태로 변환하고, 세션 계층에서 받은 데이터를 응용 계층에 맞게 변환하는 기능을 담당합니다.

  • 응용 계층(Application Layer)

    사용자가 OSI 환경에 접근할 수 있도록 서비스를 제공합니다.

    담고있는 정보들을 어떤 어플리케이션으로 보내 렌더링

    우리가 알고 있는 브라우저나 텔넷같은 서비스가 이 계층에 동작하며, 동작하기 위해서는 전송계층의 주소, 즉 포트번호를 사용합니다.

    이를테면 http는 포트번호 80번을 사용함

TCP/IP

자세히

자세히2

(Transmission Control Protocol/Internet Protocol)

TCP/IP는 인터넷을 사용하기 위해 꼭 필요한 프로토콜이다.

다시마해 인터넷의 공용어는 TCP/IP인셈 -> 모든 PC는 TCP/IP가 셋팅되어 있음

요즘에는 인터넷은 같은 IP 주소를 사용하는 경우도 있음

왜냐하면 IP주소(IPv4,Internet Protocol version 4)를 거의 다 사용해서 내부 네트워크에서는 공인되지 않은 IP주소를 사용하고, 인터넷을 나갈때만 공인주소(유일한 IP주소)를 가지고 나가는 방식인 NAT을 사용

맥에서 ip주소 보는법

1
2
3
ifconfig | grep inet #inet 주소모두
ifconfig # 모든 연결정보
networksetup -listallhardwareports # ifconfig en0같은 것들 WIFI인지 구별되는것 출력
  • 전송계층으로 서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해
    만들어진 프로토콜

  • 메시지나 파일들을 좀더 작은 패킷으로 나누어 전달하는 일과, 수신된 패킷들을 원래의 메시지로 재조립하는 일을 담당 (전송계층)

  • 데이터는 네트워크 선로를 통해 전달되는 과정에서 손실되거나 순서가 바뀔 수 있는데, TCP는 손실을 검색해내서, 이를 교정하고 순서를 재조합 할 수 있게 함

  • 쪼갠 데이터와 필요한 정보를 함께 전송하여 통신링크 마지막 부분에서 합치는데, 합친 부분을 데이터 그램이라고 함

  • TCP를 이용하는 애플리케이션에는 HTTP나 SMTP등이 있음

  • 스크린샷 2020-06-28 오후 12.02.56

    1.Application Layer

    • 네트워크를 사용하는 응용프로그램(FTP, Telnet, SMTP)등으로 이루어짐
    • OSI 계층의 Application, Presentation, Session Layer를 모두 포함

    2.Transport Layer

    • 목적지까지 데이터를 전송하기 위한 일을 하는 계층
    • OSI 계층의 Transport Layer를 포함
    • 각각의 시스템을 연결하고, TCP 프로토콜을 이용하여 데이터를 전송
    • TCP와 UDP가 존재

    3.Internet Layer

    • 데이터를 정의하고 데이터의 경로를 배정하는 일(라우팅)을 담당
    • 데이터를 정확하게 라우팅 하기 위해 IP프로토콜 이용
    • OSI 계층의 Network Layer를 포함

    4.Network Interface Layer(or Network Access Layer)

    • 인터넷을 거치지 않고 내부 PC끼리 통신을 주고 받을 때 사용되는 근거리통신
    • Ethernet을 가장 많이 사용하고, MAC 주소를 사용해 패킷을 주고받음
    • OSI 계층의 Date Link, Physical Layer를 포함
  • TCP/IP 4계층에 의한 데이타 전송

![스크린샷 2020-06-28 오후 12.09.19](/Users/lostcatbox/Library/Application Support/typora-user-images/스크린샷 2020-06-28 오후 12.09.19.png)

www서비스를 예를 들어 설명해보자, HTTP이라는 프로토콜을 이용한다. 위의 그림을 설명해 보자면, 일단 사용자는 Mozilla 나 IE 같은 브라우저를 사용하여서 www.joinc.co.kr 같은 URL 입력을 통해서 웹페이지를 요쳥한다.사용자의 요청(문자 메시지가 될것이다)은 인터넷상에서 전달되기 용이한 패킷으로 만들기 위해서 TCP 패킷으로 만들어지게 된다.이것은 다시 인터넷 상에서 원하는 주소로 이동할수 있도록 하기 위해서 IP 패킷으로 다시 만들어 지고(IP 패킷에는 자신의 주소와, 도착해야될 상대방의 주소정보가 들어있을것이다) 이것은 이더넷 카드로 보내어져서 Internet 으로 나가게 된다.

Internet 상에서는 원하는 주소로 TCP/IP 패킷을 보내기 위한 여러가지 장치들이 존재하는데(라우터, 토큰링 같은), 이들 장치를 통해서, www.joinc.co.kr 의 이더넷카드로 TCP/IP 패킷이 전달되게 된다. 그럼 이더넷 카드는 TCP/IP 패킷을 바로 윗 계층(Internet Layer)으로 보내는데, 여기에서는 IP 패킷을 분석해서, 이 패킷이 어디에서 왔으며, 그 도착지가 어디인지를 판단하게 된다.(물론 이는 IP주소 기반으로 판단한다)

그리하여 목적지가 자신이면 이것을 다시 Transport Layer 로 보내고, TCP 프로토콜을 사용하여, 메시지가 누락된게 있으면 다시 요청하고, 순서를 재조합하는등 통신 메시지를 검사해서 이것을 다시 Application Layer 에게 보낸다

Application Layer 에서는 웹서버(IIS, Apache 같은)가 통신메시지를HTTP 프로토콜에 준하여, 검사를 하여서 사용자가 요청한 웹페이지를 읽어들여서, Transport 계층으로 보내게 된다. 웹페이지를 브라우저까지 전송하는 과정은 위의 정반대의 과정을 순차적으로 거치게 된다.

최종적으로 웹브라우저는 웹페이지를 받아서(text) 역시 HTTP 프로토콜에 준하여, 렌더링 작업을 거친후 화면에 뿌려주게 된다.

위의 그림에서 보면 알겠지만 각각의 계층은 각각의 계층만을 상관하고 있음을 알수 있다. 즉 Application Layer 에 위치하는 브라우저와 webserver 는 HTTP 프로토콜에 의해서 자신의 계층끼리만 통신을 하고, Transport Layer 은 역시 TCP 프로토콜에 의해서 Transport Layer 끼리 통시을 함을 알수 있을것이다. 말그대로 계층적 구조를 가지며, 각 계층은 대응되는 상대편의 계층에 대해서만 상관한다.

NAT

네트워크 주소 변환(Network Address Translation, 줄여서 NAT)은 IP 패킷의 TCP/UDP 포트 숫자와 소스 및 목적지의 IP 주소 등을 재기록하면서 라우터를 통해 네트워크 트래픽을 주고 받는 기술을 말합니다.

패킷에 변화가 생기기 때문에 IP나 TCP/UDP의 체크섬(checksum)도 다시 계산되어 재기록해야 합니다. NAT를 이용하는 이유는 대개 사설 네트워크에 속한 여러 개의 호스트가 하나의 공인 IP 주소를 사용하여 인터넷에 접속하기 위함입니다.

DHCP

DHCP란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동적으로 제공해주는 프로토콜을 말합니다. DHCP에 대한 표준은 RFC문서에 정의되어 있으며, DHCP는 네트워크에 사용되는 IP주소를 DHCP서버가 중앙집중식으로 관리하는 클라이언트/서버 모델을 사용하게 됩니다. DHCP지원 클라이언트는 네트워크 부팅과정에서 DHCP서버에 IP주소를 요청하고 이를 얻을 수 있습니다.

네트워크 안에 컴퓨터에 자동으로 네임 서버 주소, IP주소, 게이트웨이 주소를 할당해주는 것을 의미하고, 해당 클라이언트에게 일정 기간 임대를 하는 동적 주소 할당 프로토콜입니다.

HTTP/HTTPS

http, https는 통신 규격으로서 애플리케이션 단에서 풀리고 압축됨. 또한 application(가장 추상적) 에서 통신을 위해서 01010바이너리데이터로 BIT까지 내려가야됨. 그와중에 TCP/IP들의 양식을 통해 Network Data Link Layer에서 요청과 응답간의 통신이 어디로 향해야하는지 정확히 도착했는지에 대한 정보가 다 들어가있다.

하지만 UDP/IP(최근 추세)로 전환

하여튼 양파처럼 생각하면된다. application에서 밖으로 통신에 필요한 정보들을 layer규격으로 하나씩 감싸고 서버에서는 어디로 보내야할지 알아야하므로 Network layer까지 풀었다가 다시 압축해서 통신을 보낸다.

UDP, TCP

TCP

TCP는 인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜, IP는 데이터의 배달을 처리하고 TCP는 패킷을 추척 및 관리함.

스크린샷 2020-08-01 오후 2.40.04

특징

  • TCP는 연속성보다 신뢰성있는 전송이 중요할 때에 사용하는 프로토콜
  • 연결형 서비스로 가상 회선 방식을 제공한다.(발신지, 수신지를 연결하여 패킷을 전송하기 위한 논리적 경로를 배정,보장한다!!)(3-way)
  • 3-way handshaking과정을 통해 연결을 설정하고 4-way handshaking을 통해 해제한다.
  • 흐름 제어 및 혼잡 제어 기능(UDP보다 속도 느리게된 요인중하나)
  • 높은 신뢰성을 보장한다.(패킷순서까지 항상유지됨)
  • UDP보다 속도가 느리다.
  • 전이중(Full-Duplex), 점대점(Point to Point) 방식.

TCP 서버의 특징

  • 서버소켓은 연결만을 담당한다.
  • 연결과정에서 반환된 클라이언트 소켓은 데이터의 송수신에 사용된다형 서비스로 가상 회선 방식을 제공한다.
  • 서버와 클라이언트는 1대1로 연결된다.
  • 스트림 전송으로 전송 데이터의 크기가 무제한이다.
  • 패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모) 성능이 낮다.
  • Streaming 서비스에 불리하다.(손실된 경우 재전송 요청을 하므로)

UDP

데이터를 데이터그램 단위로 처리하는 프로토콜

특히 여기에서 데이터그램이란 독립적인 관계를 지니는 패킷입니다.

TCP와 달리 비연결형 프로토콜이므로 할당되는 논리적인 경로가 없다.

따라서 각각의 패킷은 다른 경로로 전송

스크린샷 2020-08-01 오후 2.40.16

UDP 특징

  • 신뢰성보다는 연속성이 중요한 서비스 예를 들면 실시간 서비스(streaming)에 자주 사용됩니다.
  • 비연결형 서비스로 데이터그램 방식을 제공한다
  • 정보를 주고 받을 때 정보를 보내거나 받는다는 신호절차를 거치지 않는다.(연결필요없으므로 설정, 해제과정도 존재하지않는다.)
  • 신뢰성이 낮다
  • TCP보다 속도가 빠르다
  • UDP Header를 확인해보면 목적지 주소, 데이터 순서, checksum과 실데이터만 포함되고, 확인응답 같은 것이 없습니다.

UDP 서버의 특징

  • UDP에는 연결 자체가 없어서(connect 함수 불필요)

    서버 소켓과 클라이언트 소켓의 구분이 없다.

  • 소켓 대신 IP를 기반으로 데이터를 전송한다.

    (소켓이 연결되어서 지속적 통신x)

  • 서버와 클라이언트는 1대1, 1대N, N대M 등으로 연결될 수 있다.

  • 데이터그램(메세지) 단위로 전송되며 그 크기는 65535바이트로, 크기가 초과하면 잘라서 보낸다.

  • 흐름제어(flow control)가 없어서 패킷이 제대로 전송되었는지, 오류가 없는지 확인할 수 없다.

  • 파일 전송과 같은 신뢰성이 필요한 서비스보다 성능이 중요시 되는 경우에 사용된다.

네트워킹을 위한 도구

허브

  • 포트들이 통신가능하게 함. 즉, 랜카드가 설치된 각각의 PC들은 케이블을 타고 허브에 연결되고, 같은 허브에 연결된 PC끼리는 서로 통신이 가능해짐

  • 랜카드, 케이블, 허브만 있으면 일단 내부에서는 허브에 접속되어 있는 모든 PC들이 서로 통신이 가능함(단, 외부 인터넷에는 못나감)

  • 쉽게 멀티포트(Multiport) 리피터(Repeater)라고 말할 수 있음

    멀티포트 : 말 그래도 포트가 많이 붙어 있다는 뜻

    리피터 : 들어온 데이터를 그대로 전송한 다는 의미

    즉, 허브란 포트가 여러 개 달린 장비인데, 이것은 한 포트로 들어온 데이터를 나머지 모든 포트로 뿌려주는 것이다

    ※ 참고

    리피터란?

    네트워크는 케이블에 따라서 전송거리 제약이 존재하는데, 케이블이 갈 수 있는 최대 거리 이상 떨어진 장비를 연결하기 위해서 중간에서 다리 역할(들어온 데이터를 다른쪽으로 전달해주는)을 하는 것을 ‘리피터‘라 함

  • 같은 콜리전 도메인 상에 있다?

    허브는 이더넷 허브인 만큼 CSMA/CD의 적용을 받는다. 따라서 하나의 PC가 허브에 데이터를 보내고 있을 때 또 다른 PC가 데이터를 보내려고 하면 충돌(Collision, 콜리전)이 발생함

    따라서 같은 허브에 연결되어 있는 모든 PC들은 ‘같은 콜리전 도메인 상에 있다’라고 말함

    그 의미는 허브에 붙어있는 하나의 PC에서 콜리전이 발생하면 모든 PC가 영향을 받는다는 뜻

    허브에 연결된 모든 PC들은 서로간에 통신이 가능하고, 하나의 콜리전 도메인 안에 있기 때문에 안정성이 가장 중요함

    또한 허브는 어느 한 순간에 한 PC만이 데이터를 보낼 수 있는데, 이러한 기능을 수행하는 허브를 ‘Shared(쉐어드, 공유 방식) 허브‘라고 함

    즉 10Mbps의 속도를 그 허브에 연결돈 모든 PC들이 공유한다는 것

    규모가 커질수록 허브의 데이터 전송방식으로는 속도의 한계가 있고, 여러대의 허브를 연결한 곳에 콜리전이 발생하면 허브에 연결된 전체 PC에 영향이 가기 때문에 안정성이 중요하고

    허브만으로 연결하는 것에는 한계가 있음

  • 허브 종류

    • 인텔리전트 허브(Intelligent Hub) -> 지능형 허브
    • 더미 허브(Dummy Hub)
    • 세미 인텔리전트 허브(SemiIntelligent Hub)

브릿지, 스위치, 라우터

자세히

브릿지와 스위치

콜리전의 한계를 가진 허브는 다른 모든 PC들에도 영향을 끼치기 때문에 통신의 속도는 점점 떨어지게 됨

이러한 문제를 해결하기 위해 콜리전 도메인을 나누어 줄 수 있는 장비가 나왔는데 이것이 바로스위치(Switch)또는브릿지(bridge)이다.

이를 ‘포트별로 콜리전 도메인이 나뉘어져 있다’라고 함

결론적으로 1,2번 사이에 통신이 일어나면 다른 PC들은 기다려야만 하는 허브와는 달리 스위치는 다른 PC들도 동시에 통신이 가능함

스크린샷 2020-06-27 오후 6.39.30

※ 스위치가 하는일?

스위치는 예를들어 1번 포트에 연결된 PC가 2번 포트에 연결된 PC와 데이터를 주고 받는 동안에도 3번포트에 연결된 PC와 4번 포트에 연결된 PC가 서로 데이터를 주고받을 수 있게함

스크린샷 2020-06-27 오후 6.41.52

브릿지, 스위치 기능

  1. Learning, 배운다.

    출발지의 맥 어드레스(MAC Address)를 배움

    즉, 브리지나 스위치는 자신의 포트에 연결된 ‘A’라는 PC가 통신을 위해 프레임을 내보내면 ‘A’의 맥 어드레스를 읽어서 자신의 맥 어드레스 테이블(브리지 테이블)에 저장해놓고 후에 어떤 PC가 ‘A’에게 통신할 경우, 브리지 테이블을 참고해서 다리를 건너게 할 지 못건너게 할 지 정함

  2. Flooding, 모르면 들어온 포트를 제외한 다른 모든 포트로 뿌린다.

    -> 들어온 포트를 제외한 나머지를 모든 포트로 뿌림

    (브로드 캐스트나 멀티캐스트의 경우에도 발생)

    위에 말했듯이 다리를 건너게 할지 말지에 대한 정보를 맥 어드레스 테이블(브리지 테이블)을 통해서 결정함

    만일 들어온 프레임이 찾아가는 주소를 보니 맥 어드레스 테이블에 없는 주소일 경우 자신을 제외한 나머지 포트로 들어온 프레임을 뿌리는 것을 ‘Flooding’ 이라고 함

  3. Forwarding, 해당포트로 건네준다

    -> Flooding과 달리 오직 해당 포트(목적지)쪽으로만 프레임을 뿌림

  4. Filtering, 다른 포트로는 못 건너가게 막는다.

    -> 브리지를 못 넘어가게 막는것

    만일 브리지가 이미 목적지 어드레스를 알고 있고, 출발지와 목적지가 같은 세그먼트(다리 북단 or 다리남단, 쉽게 콜리전 도메인) 상에 있는 경우

    브리지를 건너지 않아도 통신이 되기때문에 브리지를 막는 필터링을 하게됨

  5. Aging, 나이를 먹는다.

    -> 브리지가 학습한 정보들을 디폴트(5분)시간 동안 테이블에 저장하고 있다 300초 동안 해당

    출발지를 가진 프레임이 들어오지 않으면 주소를 테이블에서 삭제(용량 한계 때문)

브리지에 프레임이 들어왔는데, 그 프레임의 출발지 주소가 AAAA인 경우 AAAA를 5분동안 브리지 테이블에 저장해둔다. 280초가 지났을때 또 다시 출발지 주소가 AAAA인 프레임이 들어오면 시간을 다시 0부터 세는 리플래시(Refresh)를 하게 됨

스크린샷 2020-06-27 오후 6.48.37

라우터

LAN을 연결시켜주는 장치로써 정보를 주고 받을 때 송신정보 (패킷)에 담긴 수신처의 주소를 읽고, 가장 적절한 통신경로를 이용하여 다른 통신망으로 전송하는 장치입니다.

서로 다른 프로토콜로 운영하는 통신망에서 정보를 전송하기 위해 경로를 설정하는 역할을 제공하는 핵심적인 통신 장비입니다

단순히 통신망을 연결해주는 브리지 (Bridge)기능에 더하여 경로배정표에 따라 다른 통신망을 인식하여 경로를 배정하며

수신된 패킷에 의하여 다른 통신망 또는 자신이 연결되어 있는 통신망 내의 수신처 (노드)를 결정하여 여러 경로 중 가장 효율적인 경로를 선택하여 패킷을 보내는데,

통신흐름을 제어하며 통신망 내부에 여러 보조 통신망을 구성하는 등의 다양한 통신망 관리 기능을 수행합니다.

내부 네트워크는 사용하는 컴퓨터의 기종이나 OS, 프로토콜 등은 알 수 있기때문에 네트워크의 최적화를 이룰 수 있습니다.

그러나 내부 네트워크를 외부와 연결할 때는 외부 네트워크에서 사용하는 프로토콜이나 컴퓨터의 기종을 알 수 없으므로,

이러한 알 수 없는 임의의 네트워크와 내부 네트워크를 위한 네트워크 장비가 라우터입니다.

장점은 통신 환경설정을 가능하게 하여 전체 네트워크의 성능을 개선할 수 있고, 표준 논리에 따라 통신방법이 자동으로 결정되므로 유지보수가 용이합니다.

또한, 통신방법에 구애 받지 않으므로 대규모 통신망을 쉽게 구성할 수 있으며, 다양한 경로를 따라 통신량을 분산할 수 있습니다.

스위치는 유선 네트워크에만 사용되지만 라우터는 무선 네트워크와도 연결할 수 있습니다.

단점은 초기 환경 설정에 대한 어려움과 특정한 프로토콜에 의존하므로 다양한 프로토콜 지원 또한 어려우며,

하위 프로토콜 지원이 불가능하고 기능이 복잡하므로 가격이 비쌉니다.

구성은 다음 이미지와 같다

라우터는 IP 주소 등 L3에 있는 주소를 참조하여 목적지와 연결되는 포트로 패킷을 전송합니다.

서브넷 마스크가 다른 IP 주소를 가진 장비간 통신을 하기 위해서는 반드시 L3 장비를 거쳐야만 합니다.

스크린샷 2020-06-27 오후 5.11.05

공유기

ISP(Internet Service Provider) 업체에서 제공하는 한 개의 인터넷 IP Address로 여러 대의 컴퓨터, 노트북, IP폰 등이 인터넷을 공유할 수 있는 기능을 제공합니다.

공유기를 사용하면 ISP에서 할당받은 하나의 공인 IP Address를 내부 네트웍에서 여러 개의 IP 주소로 변환 사용가능하기 때문에,

한 대의 컴퓨터에서만 인터넷 접속이나 외부 네트워크와 연결되던 것을 내부 IP 값으로 최대 253대까지 동시에 인터넷 접속이 가능합니다.

또한, 인터넷 공유기는 허브 기능을 포함하고 있어서, 여러 대의 PC를 연결할 수 있습니다.

대부분의 인터넷 공유기는 4포트를 내장하고 있는데, 4대 이상의 PC가 하나의 인터넷 IP를 공유하기 위해서는 인터넷 공유기와 스위칭 허브를 이용하면 됩니다.

공유기에는 보통 1개의 WAN 포트와 4개의 LAN 포트가 있는데, 외부에서 들어오는 공인 IP의 LAN 선을 WAN 포트에 연결하고

나머지 LAN 포트들은 내부 IP (ex 192.168.0.~)로 사용할 장치들에 LAN 선을 연결하는 것이 일반적인 사용법입니다.

공유기에서 나오는 LAN 선을 또 다른 하위 공유기에 연결할 수 있는데,

하위 공유기의 WAN 포트에 연결하면 새로운 영역의 네트워크 (ex 192.168.1.~)을 만드는 것이고,

하위 공유기의 LAN 포트에 연결하면 허브로 멀티포트 기능을 사용하는 것 (ex 192.168.0.~)입니다.

공유기 구성

외부에서 들어오는 공인 IP의 LAN 선을 WAN 포트에 연결하고, 나머지 LAN 포트들은 내부 IP로 사용할 장치들에 LAN 선을 연결한 일반적인 사용법입니다.

스크린샷 2020-06-27 오후 5.11.57

라우터(L3)

논리적으로 분리된 망, 혹은 물리적으로 분리된 망 사이를 지나가야 하는 패킷들에 IP 주소 뜯어서 경로를 뽑아 자기가 아는 최상의 경로를 찾아낸 뒤(물론 안 되는 라우터가 더 많다.) 다른 망으로 패킷을 보내주는 역할을 하는 기계이다.

내부 네트워크는 사용하는 컴퓨터의 기종이나 OS, 프로토콜 등은 알 수 있기때문에 네트워크의 최적화를 이룰 수 있습니다. 그러나 내부 네트워크를 외부와 연결할 때는 외부 네트워크에서 사용하는 프로토콜이나 컴퓨터의 기종을 알 수 없으므로, 이러한 알 수 없는 임의의 네트워크와 내부 네트워크를 위한 네트워크 장비가 라우터입니다. (즉, 라우터는 맥주소를 알고있어서 정확한 물리적정보를 가지고있지만 외부망에서는 알수없으므로 라우터로만 해당 요청을 전달함)

즉, IP주소맞을때까지 옆으로 토스하는 느낌이고 IP 주소가 맞고 맥 어드레스도 맞을경우 그 라우터에서 해당 기기로 패킷전송

실습

TCP 연결지향

연결지향이란 내가 보낼 데이터를 보내기 전에 클라이언트와 서버간에 연결 통로를 확보할때 서로 확인하는절차다. 3-way handshake

image-20200628122013346

스크린샷 2020-06-28 오후 1.25.26

Wireshark를 통해 패킷을 분석결과

sequence number, acknowledgment number 를 확인하였고, 3way확인가능, 그리고 연결통로 확보 후 GET HTTP/1.1 요청후 GET HTTP/1.1 200 응답받는것을 확인가능 필요한 정보들을 패킷으로 연속적으로 받아오는것을 확인할수있다.스크린샷 2020-06-28 오후 2.59.51

네트워크 통신 메커니즘

자세히

MAC Table: switch,bridge만 가지고있으며 맥주소와 포트정보가 매칭된 정보

Routing Table: 호스트가 가지고있으며 목적지에 따라 어떤 인터페이스, 게이트웨이등을 매칭해놓음(ip통신하는 모든장비가가짐)

ARP Table: 여기에는 ARP를 하면 MAC과 IP를 기록해놓음(정적, 동적 정보있음)(ip통신하는 모든장비가가짐)

pc0,switch,pc1 이 연결되어있는 상태(처음연결)

Bridge+LAN환경에서 PC0가 PC1에게 요청 응답을 받는상황이라면 어떻게 통신할까?

  1. PC0에서 통신할 상대방 PC1에 IP주소를 알아낸다
  2. PC0에서 요청을 보낸다
  3. PC0의 Routing Table에서 PC1의 IP주소로 가려면, 어떤 interface로 나가야 하고, next hop ip(목적지 네트워크를 가기 위한 다음 장치를 Next Hop이라고 한다)가 무엇인지 찾는다
  4. 이 next hop ip의 MAC address가 ARP Table에 등록되어있는지 찾는다
  5. ARP Table에 Next hop IP의 MAC address 가 없다면 MAC address를 알아오기 위해서 ARP request메시지를 전송한다.
  6. Switch는 ARP request 메시지를 수신하면 source MAC address를 보고, PC0의 MAC Table entry를 만든다.(PC0의 MAC address와 Frame이 수신된 port번호를 MAC Table에 기록한다.)
  7. Switch는 ARP request 메세지를 모든 LAN port로 브로드캐스트한다. (ARP 패킷은 LAN구간 끝까지 어디든 날아간다.)
  8. ARP request를 수신한 PC1은 자신의 ARP Table에 PC0의 IP와 MAC address를 등록하고 ARP reply 메시지를 전송한다.(PC1의 ARP Table에는 ARP request메시지를 받으면서 이미 PC0의 MAC address가 등록되어 있다.)(만약 다른 장비도 ARP request를 수신했다면 ARP reply안하고 ARP Table에는 등록할수도있고 안할수도있다.)
  9. Swtich는 ARP reply 메시지를 수신하면, source MAC address를 보고, PC1의 MAC Table entry를 만든다.
  10. PC0은 ARP reply 메시지를 수신하면, ARP Table에 PC1의 IP와 MAC address를 등록하고, PC1으로 전송되어야 할 패킷의 Destination MAC에 PC1의 MAC address를 부착하고 메시지를 전송한다.
  11. Switch는 PC0가 전송한 Ethernet Frame을 수신하면, Desitnation MAC address가 MAC Table에 존재하는지 찾는다.
  12. Switch는 MAC Table에 PC1의 정보가 등록되어 있으므로 PC1이 연결되어 있는 port로 메시지를 전송(Unicast)한다.
  13. PC1은 Destination MAC address가 자신의 NIC MAC address와 동일하므로 메시지를 수신하여 IP layer로 전달하고,

Router의 통신

스위치는 NIC에 MAC address가 있지만 Promiscuous mode로 설정이 되어 있어서 MAC address와 상관없이 모든 프레임을 수신한다고 했었습니다. 스위치와는 달리 라우터는 NIC에 MAC address가 있고, IP도 설정이 되어 있습니다. Router의 각 interface는 그림 6과 같이 각각 서로 다른 LAN에 속하게 됩니다. 라우터는 각 NIC(Network Interface Card)는 일반적인 IP 장비의 NIC와 동일하게 아래와 같은 경우에 이너넷 프레임을 수신하여 상위 Layer로 전달합니다.

1) Destination(목적지) MAC address가 자기 interface의 MAC address와 같을 경우

2) Destination(목적지) MAC address가 Broadcast MAC address인 경우

3) Destination(목적지) MAC address가 Multicast MAC address인 경우

이때 Router는 Routing Table을 보고 Routing을 한다

Router의 IP Layer에서는 MAC Layer로부터 수신된 IP 패킷에 대하여 아래와 같이 처리합니다. 모든 경우를 열거하는 것은 아니며, 일부 대표적인 경우만 설명함을 알아 주시기 바랍니다.

1) Destination IP가 Router 자기 자신의 어느 interface(Loopback, serial, ethernet, frame relay, ATM, etc)에 설정 된 IP일 경우, Router 자신의 CPU로 패킷을 전달한다.

2) Destination IP가 Router 자기 자신의 어느 interface에 설정 된 IP와 동일 LAN(subnet, network)에 속하는 IP일 경우, 직접 전달한다. 직접 전달한다는 의미는 Routing Table에 directly connected로 등록되어 있는 interface의 ARP Table을 확인하고, ARP Table에 목적지 IP에 대한 Entry가 있으면 destination MAC에 해당 MAC을 달고, source MAC에는 자기 interface MAC을 달고 전송한다. ARP Table에 entry가 없으면 ARP Requst를 보내고, ARP Reply를 받으면 destination MAC에 수신된 해당 MAC을 달고 패킷을 보낸다. ARP Reply를 받지 못하면, 패킷은 폐기(Discard) 한다. (직접 전달)

3) Destination IP가 Router 자기 자신의 어느 interface에 설정 된 IP와 동일 LAN(subnet, network)에 속하는 IP가 아닐 경우, 다른 router로 전달하기 위해서 Routing Table을 검색한다. Routing Table에 Entry가 있거나, Entry는 없지만 default route가 있을 경우 next hop interface로 패킷을 전달한다. (간접 전달). Routing Table에 Entry도 없고, default route도 없는 경우, 해당 패킷은 폐기(Discard)한다.

상기 열거한 항목 중에서 항목 1)은 라우터 자신에게 온 패킷의 경우이고, 항목 2), 3)은 라우터의 본래 기능인 라우팅 기능을 통해서 다른 LAN으로 routing 되기 위해 수신 된 패킷입니다. Destination IP가 자기 interface에 설정된 IP가 아닌 경우가 Routing을 위해서 수신된 IP 패킷입니다. 서로 다른 LAN(subnet, network)간 통신을 위해서는 Router 기능이 필수적으로 필요합니다. 전통적인 Router 이외에 L3 switch나 routing 기능이 있는 L4~L7 스위치 장비도 서로 다른 LAN간 통신에 이용될 수 있습니다. 그렇게 Routing 기능을 수행할 수 있는 장비들은 모두 한결같이 Routing Table과 ARP Table을 가지고있습니다

![스크린샷 2020-07-30 오후 3.53.32](/Users/lostcatbox/Desktop/스크린샷 2020-07-30 오후 3.53.32.png)

간단히 요약해서 pc0-router0-router1-router2-server0순으로 연결되어있다면 처음통신할때 pc0에서 arp request를 router0에 보내며 응답으로 router0의 맥주소를 알게된다

pc0는 sever0의 목적지 IP를 가지며 source MAC을 자신의것, 목적지 MAC을 router0의것으로한 프레임 만들어 전송

router0에서는 자신에게 직접 연결된 LAN에서 해당 목적지 IP가 없으므로 Routing Table을 참조 후에 default 주소로 보낸다. ARP table에 MAC 주소가 존재하지않으므로 ARP request를 router1에게 보낸다.

source MAC을 router0의것, 목적지 MAC을 router1의것으로한 프레임 만들어 전송

router1의 Routing Table에서 default route는 다른 라우터로 나가게 되어있으므로 Routing Table에 해당 목적지 IP이면 server0가 속하는 router2의 주소를 줘야함. 설정되었다면, Routing Table을 기준으로 router2에게 ARP request를 보내며 MAC 주소를 알아내고.. 앞에과정똑같다

마지막으로 router2에서는 server0와 직접적으로 연결되어있으므로 router2가 직접적으로 server0에게 ARP request를 보내며 MAC주소를 알아내고.. 앞에 과정과 똑같이 프레임 전송한다.

이제 모든 기기가 ARP table에 해당 IP에 대한 MAC주소가 기록되어있으므로 보다 간결한 방식으로 통신이 가능하게된다.

참고

스크린샷 2020-07-30 오후 3.53.32

스크린샷 2020-07-30 오후 4.09.35

CATALOG
  1. 1. 네트워크 지식 01
    1. 1.1. 상식
  2. 2. OSI 계층 구조
    1. 2.1. 데이터 단위
    2. 2.2. 각 계층별 기능
  3. 3. TCP/IP
    1. 3.0.1. TCP/IP 4계층에 의한 데이타 전송
  • 4. NAT
  • 5. DHCP
  • 6. HTTP/HTTPS
  • 7. UDP, TCP
    1. 7.1. TCP
    2. 7.2. UDP
  • 8. 네트워킹을 위한 도구
    1. 8.1. 허브
    2. 8.2. 브릿지, 스위치, 라우터
      1. 8.2.1. 브릿지와 스위치
      2. 8.2.2. 브릿지, 스위치 기능
      3. 8.2.3. 라우터
    3. 8.3. 공유기
    4. 8.4. 라우터(L3)
  • 9. 실습
    1. 9.1. TCP 연결지향
  • 10. 네트워크 통신 메커니즘
    1. 10.1. Bridge+LAN환경에서 PC0가 PC1에게 요청 응답을 받는상황이라면 어떻게 통신할까?
    2. 10.2. Router의 통신
  • 11. 참고