네트워크 총 정리 4편
Youngminah opened this issue · 0 comments
Youngminah commented
- 해방🥲
- 4편은 링크, 물리 계층에 관한 내용임!
- 드디어 마지막편 시작 ~~!
Link Layer
- 처음에 호스트가 라우터에 보낼때 브로드케스트로 보내서 모든 호스트한테도 신호가 간다.
- 따라서 한명이 신호를 보내고 있을때 다른호스트가 동시에 신호를 보내면 충돌이 일어날 수 있다.
- 따라서 충돌이 일어나지 않도록 해야함.
- 충돌이 발생하지 않게 , 또 충돌이 발생한다면 해결하는 일을 하는것이 링크레이어의 핵심적인 일❗️
- 링크레이어는 유선(이더넷), 무선(와이파이) 일 수가 있음
유선인 상황
- 링크레이어의 어뎁터는 NIC(네트워크 인터페이스 카드)임
- 유선일 경우는 브로드캐스트 또는 포인트 투 포인트, 무선일 경우 브로드캐스트.
Medium Access Control (MAC)
- 어떻게 하면 충돌을 해결할것인가?
- 와이파이도 맥 프로토콜이라 할수있음
- 현재는 유선을 얘기하겟음
TDMA : Time Division Multiple Access
FDMA : Frequency Division Multiple Access
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의 재전송은 링크레이어에서 하는 재전송으로 호스트와 (게이트웨이)라우터와의 재전송을 담당하는것❗️❗️
그밖에도 등등
- Taking Turns: polling
- token passing : 토큰을 가지고 있는 사람이 얘기를 할 수 있다
- 단점: 토큰이 사라지면 심각한 문제에 빠짐.
LANS
- local area network 호스트 기준 서브넷들
Ethernet
- LAN안에서의 링크 프로토콜 .
- 요즘은 버스형이 아니라 스타형(스위치이용) 하여 구성되어있다.
링크레이어의 프레임 구조
- 링크레이어의 전송단위는 프레임 ! 뒤에 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 어드레스를 알아내기위한 프로토콜
- 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 (스스로 학습하는방법으로 스위치 테이블 만듬)
- 테이블이 아무것도 없는데
A(출발지)-A’(도착지)
이 들어올 경우 - 우선 들어온 A의 1번 인터페이스 정보를 TTL과 함께 테이블에 적는다.
- 그러면 flooding을 하여 모두에게 보낸다.( flooding이 초반에만 생김 학습하면 할수록 테이블이 채워지므로 )
- 그러면서 스위치 테이블을 Self Learning으로 만들게 되는것.
- 즉 목적지를 알지못하는 경우: flooding
- 아는경우(이미 스위치 테이블이 생성된 경우) : 테이블 참조하여 보냄.
Interconnect Switch
- 스위치들을 또 스위치로 연결 할 수 있음.
- 스위치는 맥 어드레스 어뎁터 없음.
4편까지 읽느라 너무 수고하셨습니당
- 정리한 나도 수고했당..!
- 잘 이해가 안갈 경우 밑의 강의를 들으면서 읽으면 더 이해가 잘 가실꼬에용
- 네트워크 강의