Youngminah/TIL

네트워크 총 정리 4편

Youngminah opened this issue · 0 comments

image

  • 해방🥲
  • 4편은 링크, 물리 계층에 관한 내용임!
  • 드디어 마지막편 시작 ~~!


Link Layer

  • 처음에 호스트가 라우터에 보낼때 브로드케스트로 보내서 모든 호스트한테도 신호가 간다.
  • 따라서 한명이 신호를 보내고 있을때 다른호스트가 동시에 신호를 보내면 충돌이 일어날 수 있다.
  • 따라서 충돌이 일어나지 않도록 해야함.
  • 충돌이 발생하지 않게 , 또 충돌이 발생한다면 해결하는 일을 하는것이 링크레이어의 핵심적인 일❗️
  • 링크레이어는 유선(이더넷), 무선(와이파이) 일 수가 있음


유선인 상황

  • 링크레이어의 어뎁터는 NIC(네트워크 인터페이스 카드)임
  • 유선일 경우는 브로드캐스트 또는 포인트 투 포인트, 무선일 경우 브로드캐스트.


Medium Access Control (MAC)

  • 어떻게 하면 충돌을 해결할것인가?
  • 와이파이도 맥 프로토콜이라 할수있음
  • 현재는 유선을 얘기하겟음

TDMA : Time Division Multiple Access

  • 시간을 쪼개서 사용할 사람들을 정한다.
  • 단점: 낭비가 심함.
    image

FDMA : Frequency Division Multiple Access

  • 각자 자기자신의 주파수가 있어서 주파수에 맞게 보낸다.
    image

Random Access Protocols

  • 가장 많이 사용
  • '내가 보내고자 할 데이터가 있을때 보내겠다'
  • 여기선 충돌이 날 수 밖에 없을 것.
  • 그래서 해결방법이
  • ALQHA, ALOHA, CSMA, CSMA/CD, CSMA/CA 등등이 있음.


CSMA: Carrier Sense Multiple Access

  • 말하기 전에 듣는다 ( 핵심 개념 )
  • 우리가 여러명이서 모여서 말할때, 말하는 기법이랑 비슷한 개념이다.
  • 누군가 말하고 있을 때 말하지 않는다.
  • 하지만, 혹시나 동시에 얘기하는경우도 있을 수 있음.


CSMA/CD (Carrier Sense Multiple Access/ Collision Detection)

  • 충돌이 일어나는 경우, NIC가 인지한후 바로 멈춘다
  • 다음 한발짝 물러선다 binary exponential backoff
  • 사람이 많으면 백오프 하는 경우도 많아지고 말할 타이밍이 느려진다(단점) 그리고 재전송
  • 충돌 감지 일때만 재전송한다.(유선일 경우 큰 문제는 없음. 그래서 이더넷에서 csma/cd사용)
  • 혹시라도 충돌감지를 못하면 큰문제가 될 수 있다.
  • Carrier Sense : 다른 호스트가 회선을 사용 중인지 검사
  • Multiple Access : 회선이 사용할 수 있는 상태가 되면 모든 호스트들은 동시에 패킷 전송
  • Collision Detection : 충돌이 발생하면 Jam 신호를 보내 충돌 사실을 모든 호스트에 통보.


그렇다면 CSMA/CD재전송은 TCP 재전송과는 무엇이 다른것일까요? ⭐️

  • TCP는 호스트와 저 멀리 있는 호스트와의 재전송을 담당하는것
  • 호스트와 호스트 사이에서 Timeout이나 3-Duplicate Ack 발생시
  • 아예 송신 호스트에서부터 다시 패킷을 재전송하는 개념임!
  • 따라서 거의 수신호스트와 근접한 라우터에서 Timeout이 발생한다해도 호스트에서부터 재전송이 이루어지는 것!
  • 이것의 이유는 전 편에서 설명했듯이. 라우터에서 TCP 재전송하게 되면 ,
  • TCP는 4계층인 전송 계층이기 때문에,
  • 라우터가 3계층이 아닌 4계층으로 구성되어야하고, 그러면 라우터가 해야하는 일의 양이 너무많아진다. (=>그래서 호스트영역에서 재전송)
  • 암튼 TCP는 호스트 영역에서의 재전송이고
  • CSMA/CD의 재전송은 링크레이어에서 하는 재전송으로 호스트와 (게이트웨이)라우터와의 재전송을 담당하는것❗️❗️


그밖에도 등등

image

  • Taking Turns: polling
  • token passing : 토큰을 가지고 있는 사람이 얘기를 할 수 있다
    • 단점: 토큰이 사라지면 심각한 문제에 빠짐.


LANS

  • local area network 호스트 기준 서브넷들


Ethernet

  • LAN안에서의 링크 프로토콜 .
  • 요즘은 버스형이 아니라 스타형(스위치이용) 하여 구성되어있다.


링크레이어의 프레임 구조

image

  • 링크레이어의 전송단위는 프레임 ! 뒤에 CRC도 있음
  • 프레임의 헤더는 굉장히 단순함. 4가지 밖에 없음. type에는 무슨 프로토콜인지 들어감.
  • 이더넷에서 사용하는 MAC 프로토콜은 CSMA/CD 임.이더넷은 유선임으로 큰 문제 없음.
  • 만약 충돌 감지가 안된다면 어떻게 되는가?
  • 해결: 프레임을 보낼때 할말이 없어도 말을 길게하게함 Minimum Frame Size : 64바이트를 지켜야함
  • 만약 사이즈가 작다면 패딩을 해줘서 64바이트 맞춰주어야함.
  • 프레임 헤더에는 MAC addr src, des 가 들어간다.
  • MAC 주소는 LAN인터페이스카드 그자체 바꿀 수 없는 정해져있는 주소임.
  • 48비트이고 앞에는 제조사등등 주민번호같은 느낌
  • 자기자신의 MAC address는 어뎁터에있음.


여기까지 종합정리 ⭐️

  • 맨처음에 게이트웨이라우터의 아이피는 DHCP에 의해 아이피를 안다.
  • 처음 게이트웨이 라우터에 가면 네트워크 계층까징 있어서
  • 포워딩 테이블로 알맞은 아이피 방향으로 갈 수 있지만
  • 처음 게이트 웨이라우터로 가기위해서는 맥 어드레스를 알아야된다. 그이후도 마찬가지.
  • 라우터는 MAC address를 여러개가짐.


ARP ⭐️ (얘는 중요함)

  • IP주소를 가지고 다음 MAC 어드레스를 알아내기위한 프로토콜
    image
  • IP Address를 가지고 게이트웨이라우터의 Mac Address를 알아야된다. => 이때 필요한 프로토콜이 ARP
  • ARP테이블에 IP Address에 해당하는 Mac Address가 적혀있다.
  • 처음에는 채워져 있지 않는 경우에는 ARP request를 통해 채운다.
  • 브로드캐스트로 보낸다음 자기자신의 아이피인경우 자신의 어뎁터 맥 어드레스를 보낸다
  • ( 그것이 게이트웨이가 될것임 왜냐면 request에 DHCP에서 알게된 게이트웨이 아이피 주소를 요청 할 것이기 때문. )
  • 그 이후에도 라우터가 라우터를 가기위해서 프레임 에서는 맥 주소가 계속 필요함.
  • 라우터에도 ARP 테이블이있어서 그것으로 목적지 맥주소를 프레임에 담아 보냄.
  • ...반복
  • 혹씨, 라우터에서 다음라우터(Next hop)를 보내는건 Forwarding 테이블을 보고 찾아가는거라는거 기억하닝..?
  • 즉, Next hop을 알아내기 위하여 Forwarding 테이블을 lookup하고,
  • 맥 어드레스를 알아내기 위해서는 ARP 테이블을 lookup한다.
  • 없으면 request ( 포워딩테이블을 만들때 어느정도 ARP 테이블도 만들어짐)
  • 요즘은 버스형이 아니라 성형이라 switch필요


Switch

  • 2계층까지만 기능함. 3계층 관점에선 없는거나 마찬가지
  • 편리할 뿐만아니라 collision domain을 분리 시켜준다.
    • A-A’ , B-B’ 동시에 보낼수도 있고, 혹시나 목적지가 같은경우 하나하나 교통정리도 해준다.
    • 그렇다면 스위치 목적지를 어떻게 아냐면? 스위치 테이블 때문.
  • A’은 4번인터페이스에있고 등등 테이블에 정리되어있음.
  • 스위치 테이블은 만드는 방법 => Self Learning (스스로 학습하는방법으로 스위치 테이블 만듬)
    image
  • 테이블이 아무것도 없는데 A(출발지)-A’(도착지) 이 들어올 경우
  • 우선 들어온 A의 1번 인터페이스 정보를 TTL과 함께 테이블에 적는다.
  • 그러면 flooding을 하여 모두에게 보낸다.( flooding이 초반에만 생김 학습하면 할수록 테이블이 채워지므로 )
  • 그러면서 스위치 테이블을 Self Learning으로 만들게 되는것.
  • 즉 목적지를 알지못하는 경우: flooding
  • 아는경우(이미 스위치 테이블이 생성된 경우) : 테이블 참조하여 보냄.


Interconnect Switch

  • 스위치들을 또 스위치로 연결 할 수 있음.
  • 스위치는 맥 어드레스 어뎁터 없음.


4편까지 읽느라 너무 수고하셨습니당

image

  • 정리한 나도 수고했당..!
  • 잘 이해가 안갈 경우 밑의 강의를 들으면서 읽으면 더 이해가 잘 가실꼬에용
  • 네트워크 강의