오래 못 할 짓 하지 않기

[ 네트워크 ] 24. Link layer : LAN (Ethernet) 본문

3학년 2학기/네트워크 (Network)

[ 네트워크 ] 24. Link layer : LAN (Ethernet)

쫑알bot 2024. 12. 5. 12:35
728x90

Ethernet

: 유선 LAN 통신에서 가장 많이 쓰이는 방식

 

📌 특징 

- 간단 / 저렴하다.

- Various Capacity.

 

 

📌Physical topology

1. BUS 방식 

[ 특징 ]

: 한 쌍의 Node가 정보를 주고받으면 다른 Node는 그 통로에 끼어들면 안 됨

         Collision 발생 가능

 

2. Switch 방식 
(이따 아래에서 커버함)

 

[ 특징 ]

:  여러 Node들 사이에 Switch가 정보 통신을 관리하여 충돌이 발생하지 않는다.

 


Ethernet frame 구조

 

 

- preamble : 7bytes를 가지고 이게 Frame 이라는 걸 알려준다.

                  > 10101010 *7 를 시작으로 하여 "여기서부터 하나의 frame이야" 하고 알려준다.

 

- addresses : 6bytes로 Src , Dst 의 MAC 주소를 나타낸다.

 

 

- type : 이 Frame을 가지고 상위 계층에서 어떤 Type의 동작을 할지 알려준다. ex) IP, ARP...

 

 

- CRC : 4 bytes 를 가지고 Error를 감지한다.

 

 

추가적인 Ethernet 특징

 

 

- Connectionless 방식이다.

  = 주고 받는 NIC 사이에 Handshaking이 없다.

 

- Unrelaible 하다

= Receiving NIC가 잘 받았는지 확인하는 ACK나 NAK를 보내지 않는다.

  > TCP 단계에서 이를 Cover 해준다.

 

 

 

해당 단계에서는 Unslotted CSMA/CD with Backoff 프로토콜을 사용한다.


Switch

: Link layer device 이고, Active한 역할을 가진다.

 

[역할 1]

: Frame을 받고 , (저장하고) , Forward 시킴

 

 

[역할 2] 

Incoming MAC address를 맞추고,

선택적으로 하나 혹은 그 이상의 Outcoing Link로 보낸다.

 

Transparent :

Host는 Switches의 존재를 알지 못한다. 알 필요도 없고.

 

 

 

 

📌Plug and play , Self-learning 

- Host는 곧바로 Switch와 연결된 Dedicated Link가 있다.

 

- Ethernet protocol 은 각각의 Incoming link에서 사용된다.

  > [ Collision X ] + [ Full duplex ]

 

[ Switching ]

: Transmission를 한 곳에 동시에 할 수는 없다.

  한 같은 목적지가 아니라면 Switch가 길을 만들어서 동시에 계속 통신할 수 있게 해준다.

 

 

 

Q. Router는 4로 가면 A'가 있고, 5로 가면 B'가 있는 걸 어케암?

   A. Switch table이 있음

      Entry : 

 

 


Self - learning

:  Switch는 해당 Interface로 가면 어느 Host에게 가는지에 대해 Self-Learning 한다.

 

 

 

1. Switch가, 자신에게 들어오는 Interface의 (A의) Mac Address를 저장한다.

2. 들어온 Segment의 Dest MAC 주소를 Switch table에서 찾는다.

 

3-1) 주소의 Entry가 발견있다면 

         if( 데이터가 온 쪽으로 다시 보내지는 거라면)

        > Drop

        else if( 데이터가 온 쪽에 다시 보내지는 게 아니라 다른 곳에 가는 거라면)

        > 정해진 곳으로 다시 보낸다. 

 

  3-2) 발견이 안 되면

         > 들어온 Interface 빼고 모든 interface로 다 보낸다. = Broadcast

 

 

Flood로 받고 그걸 response하면서 Entry가 업데이트 되는건가

> ㅇㅇ Flooding 받고, 본인한테 온 거면 "이거 내 거 맞아" 라고 응답하면서 Router로 가서 Update됨

 

예제)

처음에 A'로 보내려고 하는데 정보가 없다.
Flood로 다 보냄 , 이 때는 A의 정보만 Table에 있다

 

 

A'가 FLood로 정보를 받고, 이에 대한 응답으로 A에게 어떠한 Action을 취한다.

> 그러면서  A'의 정보도 Update된다.

> A에 정보는 이미 있으니 Selectively send한다.


 

Interconnecting Switches

 

Q. A에서 G로 보내려고 할 때, S1은 어떻게 Destinated 인 G로 S4, S3를 통해 보낼까?

 

A. Self Learning.

 

S4가 S1한테서 받았을 땐, S4도 모르니까 Flood해서 S2,S3로 보낸다.

 

 

 


Switches    VS   Routers

[ 공통점 ]

: 1) 둘 다 Store and Forward

  2) 둘 다 Forwarding Table이 있음

 

[ 차이점 ]

 

- Router : Network Layer devices

- Switches : Link Layer Device

 

 

2) Forwarding Table

- Router : Routing Algorithmes을 사용하여 IP 주소를 알아내고

- Switches : Self Learning을 사용하여 MAC 주소를 알아낸다.

 

 


Web Request의 전체적인 흐름

만약 google.com에 들어간다고 생각해보자.

1) DHCP (UDP)

우리는 DHCP 서버로부터

[ 우리의 IP address + DNS의 이름과 주소 + 첫 번째 Hop Router ] 를 알 수 있다. 

 

 

2) ARP (UDP)

이제 주소를 알았지만, 근처 Router의 MAC Address의 정보가 필요하다.

ARP로 Broadcast하여 [ 근처 인접한 Router들의 MAC Address ] 를 알아낸다.

3) DNS (UDP)

이제 MAC 주소도 알았으니 목적지의 IP를 알아야겠다!

DNS 로 쿼리를 보내 [ google.com의 IP Address ] 를 알아낸다. 

 

 

 

 

4) HTTP (TCP) 요청 및 응답

위에선 각각의 Step에서 구한 정보들로 IP를 알아냈고,

이를 통해 [ Handshake를 하여 Connection 을 구축 ]했다.

그리고 [ 필요한 정보들을 Request하고, Server에서는 그에 대한 Response ]를 한다.

 Handshake

 

Request /  Response

 

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

(출처)

한동대학교 고윤민교수님 - 컴퓨터 네트워크