ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 이석복 네트워크 (17)데이터보내기과정2, 스위치, 허브&스위치, 가정용공유기
    Network/Network 2022. 8. 8. 07:33

    ===

    http://ocw.hanyang.ac.kr/?course=8449

     

    ===

    복습1)

    Link layer의 핵심. GWR까지 나가는게 broadcast medium -> 그래서 충돌 -> 충돌을 어떻게 해결할 것인가? = Medium을 Access하는걸 Control하는 protocol

     

    지금 쓰이는 가장 유명한 MAC protocol이 CSMA/CD :

    frame전송전에 듣고

    조용하면 전송

    혹시라도 충돌 감지한 경우 전송을 멈추고 랜덤한 시간만큼 backoff

    backoff는 모든 충돌한 사람이 다 틀려야 하기 때문에 exponential하게 기다리는 시간을 이어가면서 backoff시간을 정한다

     

    ===

    복습2)

    Link layer에서 전송단위인 frame에 사용되는 address는 MAC address. NIC자체를 지칭하는 고유의 주소

    IP주소를 담은 MAC frame을 전송할 때 다음 홉에 해당하는 MAC address를 알아내서(IP로 MAC address를 알려주는 ARP protocol)(Link layer에선 IP가 보이지 않으니까 MAC주소로 전달) MAC frame의 dest field에 알맞게 적어놔야 전송이 된다

     

    IP패킷을 forwarding할 때forwarding table을 lookupnext hop이 누군지 판단하고, next hop에 해당하는 MAC address가 뭔지 알기 위해  ARP table lookup

     

    ▽IP를 보고 라우팅을 하는데 그 IP는 최종 목적지이고, 그 IP는 라우터마다 테이블에 이 IP는 어디로 가세요 라우팅.

    라우터 안에서 어떤 NIC로 나갈지 라우팅이고

    그 NIC고르고 나서 그 서브넷안의 다른 라우터까지 가는건 같은 서브넷 이니까 라우터 -> 라우터여도 맥주소겠네(저번 시간 끝 쪽 보라색)

     

    ===

    routing to another LAN

    (데이터보내기과정2, 1과 비슷, 다 중요해서 그냥 색칠 안함)

    왼쪽 저게 하나의 subnet

    오른쪽이 하나의 subnet

    A가 B에게 보내려고 하는데 중간에 R이라는 라우터가 있다. R은 양쪽 subnet에 동시에 속한 device

    R은 인터페이스가 2개. 각각 IP주소가 틀리고 prefix가 당연히 틀리고

    A가 패킷 생성해서 보낸다 IP dest가 B(DNS로 알았겠지~)

    frame에 실어서 보낸다 src는 나, dest는?

    A에서 222.222.222.222에 대한 next hop을 판단해야해 forwarding table보고 판단 

     

    ▽라우터가 아니어도 forwarding하는구나. forwarding table이 있구나, 당연한건가 네트워크 안에 라우터가 여러개일 수도 있으니까? 바로 아래 테이블 있다

     

    A내부에 있는 forwarding table을 보면

    외부로 나가는 모든 패킷은 111.111.111.110로 보내라고 써있다  ▽이땐 GWR가 하나라서?

    결론, 그럼 저기다가 보내야하는데, 111.111.111.110의 MAC address를 알아야 frame을 만들 수 있다

    그걸 알기 위해 ARP table참조

    여기 안적혀 있을 경우 ARP query broadcast

    ▽IP는 아니까 그게 자신이면 반응해, 그리고 완성이 된 후 메시지를 보내는데 frame을 보내는 것이고

    이 frame을 전송할 때 바로 뿜는게 아니라 CSMA/CD

    frame이 모든 노드에 다 퍼져나가는데 R만 의미있게 듣는다

     

    ---

    R은 알맹이만 쏙 빼서

    마찬가지로 table lookup 2번(222.222.222.222에 대한 nexthop, 그 nexthop에 해당하는 MAC address)

    아까 src MAC address랑 틀리다

     

    복습 끝

     

    Q.

    forwarding table만들 때 (link state..) 자동으로 ARP table도 완성되지 않나요?

    A.

    정답입니다~ 한번이라도 나와 인터렉션이 있는애들은 써진다. 저렇게 설명한건 그게 캐시니까

     

    ▽forwarding table만들기를 언제하는데? ARP 보다 빨리 하니까 저 질답이 이뤄진 거겠지? 언제야? ARP는 보낼 때 테이블이 비어있으면 ARP request하는 거고 : (12)에 보니까 지들끼리 브로드캐스트를 해서 정보를 갖고 다익스트라 돌리고, link state를 10분마다 업데이트 한대

     

     

    ===

    오늘의 topic 스위치▽허브랑 스위치 차이는 저~밑에 적어놓음.

    지금까지 한 LAN연결. 이렇게 생긴건 전통적 방식(새로운 컴퓨터 등장하면 선 뚫어서 꼬매야된다)

     

    요즘은 switch라고 하는 편리한 device를 사용한다

    ethernet꼽는 구멍(port, TCP port말고 그냥 구멍)이 있다

     

    ===

    스위치 대박 좋은 점

    collision domain을 분리시켜준다(저번 16강 시간에 전통 랜 구성 요즘 랜 구성할 때 봤던 그림. 스위치가 요즘이구나)

    왼쪽 그림은 전체가 collision domain. 보내면 전부한테 가.

    오른쪽 그림은 4개로 분리 시켜놨다. 다른데로 안가. 동시에 전송이 가능하게 했다. 스위치가 중간에서 교통정리

     

    또, 스위치는 host들 한텐 없는 존재야. MAC address가 없어. 연결만 시켜주면 돼

    그냥, host한텐 ethernet cable이 있는거라고 생각을 해 스위치 모르고. 했던대로 CSMA/CD해. 근데 스위치라서 대부분 조용해

     

    ===

    이렇게 생긴 것

    그래서 collision domain이 분리돼서 동시에 보낼 수 있다

    도착 지가 똑같을 땐 충돌이 날 수도 있잖아? 그때도 switch가 교통정리 해준다  ▽어떻게 하더라 설명했었나? 기다리라고 하려나?(스피커)

     

    switch는 내 포트에 붙어있는애들이 누군지 알아야 switching을 해줄 수 있다

    switch내에 switch table이라는게 존재

    4번 포트가 A'

    그럼 이걸 어떻게 만들어? 여기서는 라우팅 알고리즘 같은 복잡한 걸 하는게 아니라

    self-learning

    A->A'로 가는 frame을 1번 포트에서 받으면

    최소한 A는 1번 포트에 물려있구나는 알 수 있다. 그걸 적어주면 돼 이게 끝

     

    ===

    예)

    여기서 중요한게 A는 이 frame을 switch한테 보내는 게 아니다!

    switch존재도 몰라  ▽switch가 기존 시스템 호환 잘 되게 만든거구나

     

    그걸 switch가 중간에 받은 것

    그럼 A를 self learning

    A는 알겠는데 A'는? table에 없으면

    방금 들어온 1번 포트를 제외한 모든 포트에다가 보낸다. 이럴 수 밖에 없다 어딘지 몰라서 = flooding

     

    ▽flooding할때 나한테 보내준애한텐 filtering해서 걔 빼고 나머지한테 보낸다 packet tracer로 보니까

     

    그러다 A'가 A한테 뭔가 주려고 할 때 frame이 만들어지고, 그게 4번 포트로 들어오면 아 A'가 4구나! self learning

    이번엔 A아니까 flooding안하고 바로 보냄

     

    ===

    실제론

    1)처음에만 flooding하고 다음부턴 learning이 쌓여가니까 거의 안한다

    2)네트워크를 사용하고 있다 = IP패킷이 만들어진다 = frame에 담긴다 = frame의 dest는? 사실 거의 GWR한테 보내. 이건  웬만한 스위치에는 당연히 적혀있다. flooding없이 보낸다

     

    ===

    사람 많아지면 스위치 하나 더 사서 계층화 시키면 된다. 스위치끼리 연결

    switch가 별게 아니야 저건 그냥 Network Layer 관점에서 보면

    이 그림이랑 똑같아

     

    라우터 포트가 모자라도 중간에 스위치 연결하면 된다

     

    ===

    switch table

    C에서 I로

    I에서 C로 보내면 switch table은? port를 각각 딸린것 위부터+왼쪽부터 0,1,2,3..으로 생각하면

     

    C가 보내면 S1이 받아서 Self Learning (C, 3)  --S4가 연결된 포트가 0

    I없으니까 3번 제외한 0, 1, 2번 포트로 flooding

    A, B로 간 건 무시, S4가 frame 받음. Self Learning (C, 0)  ▽C가 그냥 0으로 퉁쳐지는구나, 나중엔 A, 0과 B, 0도 적히겠지

    flooding

    S2 self learning (C, 0)

    flooding

    S3 self learning (C, 0)

    flooding

    이때 I가 받는다

    어딘지 모르니까 온갖 구석구석 흘렀다. 그러면서 self learning했다

     

    ===

    I -> C

    S3 self learning (I, 3)

    어 있네 0번 포트로 전송

    S4 self learning (I, 2)

    어 있네 0번 포트로 전송

    S1 self learning (I, 0)

    어 있네 3번 포트로 전송

    경로를 뚫어놔서 flooding 안한다

     

    ===

    학교도 마찬가지로 네트워크, 학생수 많다. 이 학생들 결국 switch들로 연결
    우리의 next hop은 GWR지만 직접적으로 연결된게 아니라

    switch를 통한다

     

    ===

    허브와 스위치 : https://m.blog.naver.com/hai0416/221600066643

    이게 뭐여.. 왜케 섞였어

    ▽허브가 호스트끼리 이어주는건데, 그거에 더해서 교통정리 해주는게 스위치 아니냐?

    더미허브 : 눈 앞에 보이는 컴퓨터 애들 네트워크 가능하게, 브로드캐스트

    스위치허브 : 더미허브기능+Collision Domain나누기+MAC주소저장

    이렇게 정리하자

    ▽그리고 L1스위치, L2스위치가 뭐야

    https://blog.naver.com/bizblocklll/222152306690

    허브 스위치 라우터가 전부 스위치로 통합된거래

    L1 허브

    L2 스위치

    L3 라우터

    L4 포트 이용해서 로드밸런싱

    L7 보안 스위치라고도 불리는데 L4에 더해서 패킷 내용까지 몽땅 보고 스위칭한다. HTTP의 URL, FTP 쿠키 정보 등을 분석하여 보안에 더 유리하다

     

    ===

    Q. 우리가 지금까지 집에서 썼던건 공유긴데 뭔 차이에요?

    A. 일단 허브는 Physical Layer device 인데 일상생활에서 허브라는 단어를 많이 써서 혼란이라 이제는 이 용어를 쓰지 않는대  ▽아주깔끔해

     

    Switch vs 가정공유기 를 알려줄게

    ISP가 우리집에 회선을 하나 준다. 이 IP주소가 배정된 선을 컴퓨터 하나에 연결시킨다. ISP - 모뎀 - 컴퓨터

    ▽모뎀이 아날로그를 디지털로 하는애였지?(밑에 써있어)

    SKB에 DHCP서버가 있고 내 컴퓨터한테 전송한다

     

    근데? 우리 집에 입이 많아서 IP 딱 하나만 쓰는게 아니고, 컴퓨터 하나만 연결시키는게 아니라

    무선공유기라는 특수한 컴퓨터를 연결한 것. 사실 공유기 스택보면 App layer까지 다 있어

    공유기의 App layer에는 NAT라는게 동작한다.

    받은 오리지널 IP 주소를 내부적으로 private IP를 마구 생성해서 엄마도주고 아빠도주고 나도주고 할 것. 

    아빠가 공유기에 연결 시켰을 때 private IP를 받아와야 할 것 이때 (▽공유기의)App layer(▽Server)의 DHCP가 동작

    또 내가 인터넷할 때 DNS 작동해야해 그것도 처리하기 위해 (▽공유기의)App layer에서 Local name server 동작하고 있는 것

    모뎀을 하나 거쳐서 공유기에 연결

    모뎀은 내가 산거 아니고 공유기를 샀다

     

    회사에서 모뎀까진 이더넷 케이블 개념이 아니라 회사에서 사용하는 나름의 링크로 간다 TV Cable이라든지 매체니까 뭐가 됐든 관계없다 Physical 신호다. 이 아날로그 신호가

     

    모뎀에서 디지털로 변형이 돼서 모뎀과 공유기 사이의 이더넷 케이블에 흐른다

     

    여기까지 바로 이게

    이 개념이다.

    아래 저기 엄마아빠나누나동생..있는 것

    모두 하나의 GWR에 연결돼있고

    GWR가 Network Layer까지만 처리해야하는데 실제로 요즘에는 NAT, DHCP같은 작업을 한다

    그 역할까지 하는게 여러분 집에 있는 공유기!

    그리고 그림에서 GWR을 여러분 집의 공유기라고 치면 그 집의 구조를 그림으로 표현하면

    모뎀(SKB에서 제공한)을 거쳐 케이블을 통해서 SKT인터넷으로 나간다는 개념이다.

     

    IP는 모뎀이 집공유기에 주는 것. 집 공유기는 IP주소가 있고 MAC주소가 있다

    그러니까 여러분 집에 있는 공유기는 라우터라는 것 + App layer까지 있기 때문에 자그마한 컴퓨터

     

    ===

    스위치는 이런게 아니라 단순히 엮어만 주는 것

    집 공유기 구멍 부족할때 스위치 연결하고 거기 포트에다 꼽으면 돼

     

    ===

    만약 공유기에 공유기를 꽂으면? = 라우터에 라우터를 붙인거다

    라우터, 라우터로 subnet이 나뉘는거고, prefix가 틀려지고, 저 X라는 라우터에서 NAT다 한다

    X밑에 host에서 D한테 갈때는 이제 라우팅이 됨

     

    ===

    A는 라우터와 연결된거고, frame의 dest가 라우터고

     

    C저건 스위치로 연결된건데, frame의 dest가 I가 되는 것 -> 같은 subnet이니까. 같은 prefix.

    switch는 없다고 쳐도 돼

     

    ===

    사용자 수가 늘어날 때, 확장하는 방법은 2가지

    - 라우터를 붙이든지 : 라우팅이 발생

    - 스위치를 붙이든지 : 스위칭이 발생  --얘가 서브넷이 생기는게 아니므로 덜 복잡하다 같은 prefix를 유지하면서

     

    ===

    집에서 쓰는 공유기는 라우터! 라우팅이 일어나서 나간다

    스위치는 Link layer device, Network Layer관점에선 없는것이다

     

    ===

    이런식으로 학교가 돼 있으면

    내 IP알아와야 = DHCP

    DHCP는 보통 GWR

    DHCP request해야해, DHCP broadcast

     

    ===

    방금 했던것에 다 있지만

    forwarding vs switching

    Network Layer Device vs Link Layer Device

     

    ===

    MPLS는 그냥 넘어감

     

    ===

    구글, 네이버 이런애들 얼마나 많이 request오겠어. 하나의 process가 처리하는게 아니다

    그럼 뒤에 어떻게 돼 있는거야?

     

    request를 처리하는 서버들이 무수히 많이 존재한다

    서버실이 아니고 센터야. 얇은 블레이드라고 불리는 서버가 뺴곡하게 랙에 쌓여있고 끝없이 펼쳐져 있다

    구글은 저게 강 옆에 있는데 냉각하려고 + 땅값싸고 + 전기세 적고

     

    ===

    저런 서버들이 엄청 많은데 걔네들은 어떻게 연결돼있냐? 

    스위치

    저렇게 쌓아놓고 젤 위에 스위치 하나 있다

    이렇게 계층화

    스위치면 다 연결이 가능하다

     

    외부에서 request가 들어오면 load balancer로 가서 어떤 애가 가장 적합한지 판단해서 거기로 forwarding

    거기서 처리하고 나가고 딱 저 그림이네

     

    ===

    HTTP request를 보내고 response를 받는 과정

    tr

    nl

    ll

    다 배웠으니 저 한장보고 이해할 수 있다

     

    HTTP request나가기전에 무슨 일이 필요한지

    TCP connection 일어나려면 목적지 IP주소 알아야되고 DNS쿼리하고

    TCP 패킷을 담은 segment의 IP패킷이 frame에 담겨서 nexthop을 어떻게 판단해서..

     

Designed by Tistory.