본문 바로가기
IT/네트워크

[ 네트워크 ] Ethernet

by 신인용 2020. 7. 3.
반응형

 

Ethernet

 

처음 Ethernet을 설계한 그림

 이더넷은 wired LAN의 기술 중 하나였다. 유선 랜은 이더넷이라고 하는 특정 기술이 대세가 된 것이다. 대표 기술 같은 느낌. 하나의 chip에서 multiple speed가 가능하다. Broadcom은 이더넷을 만드는 회사다.

 이더넷이 대세가 된 것은 간단하고 가격이 싸서 그렇다. speed10Mbps에서 시작해서 10Gbps까지 올라갔다. 지금은 local만 아니라 backbone망에까지도 사용이 된다.

 

 

 

 Ethernet이 물리적으로 topology를 어떻게 갖느냐.

 

bus

 과거에는 bus로 물려있었다. 여러 컴퓨터들이 bus로 물려있다. 이것이 초창기 이더넷인데, bus를 쓰게 되면 충돌이 발생한다.

 

star

 요즘은 star 라는 topology를 사용한다. switch를 놓고 하나씩 host를 연결한다. 충돌이 생기지 않는다. switchlayer2이다. MAC 주소를 보고 어디로 보내야할지 보고 전송한다. 라우터보다는 레벨이 낮다. 라우터가 우체국 역할이라면 switch는 한 건물에서 보내주는 것이다.

 

 

 

 

 

 

 

Ethernet frame structure

 data (payload) : IP datagramencapsulation해서 들어간다.

 preamble : 어떤 이더넷 상에서 데이터를 전송하는데 데이터의 시작부분을 detection하는 것이 preamble이다. 항상 7byte의 일정한 패턴을 집어 넣는데, 이 패턴 bit를 읽어서 이게 preamble이라고 판단되면 정보를 읽기 시작한다. synchronize 목적으로 사용하는 것이다.

 addresses : 6byte. MAC address를 넣는다. destination, src를 각각 6byte로 집어넣는다.

 type : higher layer protocol에 대한 indicate를 집어넣는다. 지금은 뒤에 붙는게 전부 IP지만 초창기에는 IP가 아니고 여러 protocol이었다. 그래서 network 계층의 여러 protocol에 대비하기 위해 type이 있었다.

 CRC : error recovery하는 목적으로 붙이는 것이다.

 

 

 

 

 

Ethernet은 unrelable, connectionless 하다.

connectionless : handshaking이 없다.

unreliable : ACKNAK를 보내지 않는다. 다른 계층에서 하는 것이다. (TCP 등에서 한다)

 

Ethernet MAC protocolbinary backoff를 가지고 CSMA/CD를 쓴다.

 

 

 

802.3

 802.3IEEE에서 지정한 표준 이더넷인데, 공통된 MAC protocol format으로 만든 것이다. 여러가지 전송속도에 대해서 뭐가 됐든 간에 맨 앞에 공통인 성분을 보낼 수 있게끔 정의를 해준다. mediafiber, cable이 될 수 있는데 이에 상관없이 공통의 format을 사용한 것이 802.3 이다.

 TX, T4, T2 … 속도나 media가 무엇인가에 따라 정의된다. 앞의 숫자는 보통 속도를 의미한다. 100이면 100Mbps, 1000이면 1000Gbps.

 

 

 

 

 

Ethernet switch

 Ethernet switchlink layerdevice이다. 이더넷 frame들을 store했다가 forward한다. 라우터하고 비슷한데, 라우터는 3계층에서 작동하는 것이다. switchMAC 주소만 보고 어디로 갈지 forward 하는 것이다. 보통 내부망 하나를 구성할 때는 router를 거쳐 밖으로 나가기 전에 이더넷 스위치로 구성이 된다.

 들어오는 MAC address를 검사해서 selectively forward 한다. outgoing link 중에 하나 또는 그 이상으로 forwarding을 선택적으로 하는 것이다. 그리고 CSMA/CD를 통해 access한다.

 host가 중간에 스위치가 있는지 알지 못하고 그냥 보낸다. 이더넷 스위치는 투명한 역할을 한다.

 plug-and-play이다. 들어가면 self-learning도 한다. 스스로 학습해서 frame이 들어오면 어디로 갈지 스스로 정해서 돌아가게 된다. 별도로 네트워크 관리자가 작업해주지 않아도 된다.

 

 

 

 

 

 

 6개의 host가 하나의 switch에 물려있는 상황. 각각의 interface1 2 3 4 5 6 으로 번호가 부여되어있다. 그리고 이 switchbuffer를 갖고 있다. 또 충돌하지 않고 보내면서 받는 full duplex 기능도 있다.

 A에서 A'으로, B에서 B'으로 동시에 전달이 된다면, 충돌나지 않게 스위치에서 buffer에 넣었다가 보낸다.

 

 switchA'interface 4를 통해서 도달할 수 있다. B'interface 5번으로 도달할 수 있다. 이런 것을 어떻게 알까?

 switchswitch table을 가지고 있다. switch가 들어오면 각각 정보를 주고 받으면서 table을 만들어간다. switch는 누가 데이터를 보내면 위치를 알 수 있다. 만약 destination을 봤는데 아직 table에 없다면 broadcast를 통해 어디있는지 알게 되고 table을 만든다.

 hostMAC 주소와 interface를 매핑하고 time stamp(TTL)을 갱신한다. 여러 entry들이 switch table 내에 만들어지고 관리되는 protocol이 있다.

 

 

 

 

 

Switch: self-learning

 

 switch는 어느 host가 어디 있는지 학습한다. AA'에게 보낸다. A1번 쪽에 있구나 하고 table에 기록한다. A'이 어디 있는지 몰라서 broadcast하고 4번에서 응답을 받아 어디있는지 알게 된다. 그 다음에 forwarding 해주게 된다.

 

 

 

 Switch: frame filtering/forwarding

 

1. 들어온 link, sending hostMAC 주소를 기록한다.

2. MAC destination address를 가지고 스위치 테이블을 index한다.

3. 만약에 있으면 framedestination으로 갔는지 체크한다. 문제 있으면 드랍, 없으면 forwarding. 만약에 없으면 flood한다. (모두 뿌려본다. broadcast)

 

 

 

 Self-learning, forwarding: example

 

 보내는 쪽의 주소가 기록이 된다. 그리고 flood 시킨다. 그 다음 destination에서 응답이 온다. 4번이라고 알게 되어 table에 기록한다. 그리고 보내게 된다. (selectively send)

 

 

 

 self-learning switch들이 연결되어 있다. 서로서로 학습한다. A에서 G로 데이터를 보낸다고 가정해보자. S1 S4 S3를 거쳐야 한다. S1 S4 S3 스위치들은 어디로 보내야 할지 각자 학습해간다. flood를 통해서 table를 기록해가는 것이다. G - S3 - S4 - S1 순으로 학습해 간다.

 

 

 

 

 

 

Institutional network

 실제 기관의 network들이 어떻게 되어있느냐. 바깥으로 나갈 때는 라우터가 있고, 내부에는 이더넷 스위치들이 있다. 내부망에 web servermail server도 있을 수 있다. 내부망에서는 IP주소를 보지 않고 이더넷으로 학습한 MAC 주소로만 주고 받을 수 있다.

 

 

 

 

 

Switches vs Routers

 스위치와 라우터는 둘 다 store and forward 하는 맥락에서는 같은 기능을 한다. 라우터는 IP주소를 보고 network 계층에서 하는 거고, 스위치는 MAC주소를 보고 하는 것이다.

 두 개의 디바이스가 데이터를 주고받으려고 한다. switch를 건너갈 때는 link layerMAC 주소만 본다. 라우터에서는 networkIP주소만 본다.

 내부망은 바깥 네트워크보다 작아서 flood 방식으로 돌아가는 것이 가능하나, 라우터는 전세계적이라 규모가 커서 flood하지 못한다. 라우터는 라우팅 알고리즘을 사용한다.

 

 

 

 

 

 

 

[참고]

Computer Networking A Top-Down Approach 7-th Edition / Kurose, Ross / Pearson

반응형

댓글