공부/네트워크2011. 8. 18. 20:35


node(host, router)간 링크를 통한 전송.
링크들이 가지고 있는 프로토콜이 다르다. 이더넷으로 전송되다가 무선랜프로토콜으로 전송되는 경우.
layer 2 패킷은 frame이라고 부른다. 데이터그램에 헤더랑 트레일러(trailer)를 붙인 것.
맥 어드레스 사용.
reliable data transfer 제공,
flow control 제공.
에러 검출/복구 제공. 신호감쇠나 소음에 의해 에러가 발생할 때.
half duplex, full duplex
network interface card(NIC, 랜카드)에서 링크레이어 구현

Error detection
Datagram 끝에  EDC(Error Detection and Correction bits)를 붙인다.
parity checking: 패킷 전체 1의 갯수가 홀(또는 짝)수가 되도록 맞춰주는 것.

인터넷 체크섬
트랜스포트 레이어 에러 체크
패킷을 16-bit로 나눠서 그것들의 합을 같이 보내고 받는 쪽에서도 계산해서 일치하면 에러가 없는 것.(하지만 있을 수도)

CRC (Cyclic Redundancy Check)
나머지 값을 패킷뒤에 붙어서 리시버쪽에서 어떤 값(센더와 리시버 둘 다 알고있는 것)으로 나눴을 때 나머지가 0이 아니면 에러 발생.
 
두가지 종류의 링크
1) point to point. 이더넷 스위치와 호스트 사이의 링크.
2) broadcast. 무선랜.

Multiple Access protocols
브로드캐스트 채널을 공유.
여러개 동시 전송이 있을 때 충돌 가능성.
multiple access protocol은 충돌이 발생하지 않게금 노드들이 패킷을 전송할 수 있게 조정하는 프로토콜.
control 채널이 따로 없다. data가 전송되는 채널과 같이 쓴다.

맥 프로토콜
세가지 분류
1) 채널 파티셔닝 - 채널을 작은 단위로 나눠서 각 단위를 노드에 배정(시간, 주파수, 코드)
2) 렌덤 엑세스 - 채널이 분할되지 않고 충돌을 허용. 충돌발생했을 때 복구 방법 제공.
3) Taking turns - 노드들이 돌아가면서 채널을 사용.

1) 채널 파티셔닝
TDMA (Time Division Multiple Access)
노드들이 라운드마다 한 패킷을 보낼 정도의 time slot를 얻는다.
 
FDMA (Frequency Division Multiple Access)
주파수로 채널이 분할.
각 노드는 고정 주파수를 배정 받는다. 

2) Random Access Protocols
노드가 보낼 패킷이 있으면 한 채널 다 사용해서 보낸다.
여러 노드가 동시에 사용하면 충돌 가능성.
어떻게 충돌을 감지하고 복구하는지 프로토콜이 필요.

slotted ALOHA
타임 슬랏으로 채널이 나눠지고, 노드는 한 타임슬랏이 시작될 때 패킷을 보내도록 동기화한다. 두개 이상 노드가 같은 타임슬랏에 패킷을 보내면 충돌. 충돌이 발생하면 확률 P로 패킷을 재전송한다.

pure ALOHA
타임 슬랏 없고 동기화 안한다.
slotted ALOHA보다 효율 떨어진다.

CSMA(Carrier Sense Multiple Access)
전송하기 전에 채널을 본다. 채널이 바쁘면 전송을 연기한다.
전송시간이 있기 때문에 채널을 봤을 때 그 당시에 idle이었다고 해도 충돌이 발생 할 수 있다.
CSMA/CD (Collision Detection
충돌이 감지되면 전송을 중지.
충돌이 어떻게 감지되나? 신호 세기를 측정. 보낸 시그널보다 신호세기가 크다면 충돌이 발생했음을 알 수 있다. 무선에서는 신호감쇠현상 때문에 판단하기 어려움.

3) Taking turns
공평하게 돌아가면서 채널 사용. 
Polling - master/slaves, master가 순서를 정해준다.
Token passing - token을 가지고 있는 노드가 채널 사용. 토큰은 한 노드에서 다른 노드로 전달됨.

Link layer는 맥 어드레스를 사용.
48bit.
IP처럼 계층적이지 않다.

ARP
다른 노드의 맥 어드레드는 어떻게 아는가? 자신의 ARP  table에 IP와 맥 어드레스가 매핑되어 있다.
맥어드레스가 ARP table에 없으면 어떻게 하는가? 상대방의 아이피 주소를 담아 ARP packet으로 브로드 캐스팅. 상대방이 자기 아이피임을 알고, 자신의 맥어드레스를 담아 ARP packet을 보낸다.

Ethernet
유선 랜 기술.
Star topology : 가운데 스위치가 있고, 각 노드는 스위치랑 이더넷프로토콜을 따른다. 각각의 노드가 다른 충돌 도메인을 가지므로 서로 충돌이 발생하지 않는다.
unreliable, connectionless. TCP를 사용하고 있으면 거기서 못받은 패킷을 매꾼다.
unslotted CSMA/CD를 사용한다.
jam signal : 충돌을 감지했을 때 다른 노드들에게 자기 패킷 충돌 발생했다고 알림.
exponential backoff: m번 충돌 발생했을 때, 2의 0승부터 m승-1까지 수 중에서 하나를 랜덤하게 선택해서 그만큼 기다린다. 

Hub
Physical layer의 장치이다.
신호 약해지면 증폭시켜 보내준다.
한 링크에서 비트들이 들어오면 허브가 다른 모든 링크에 그 비트들을 보내준다.
충돌이 발생할 수 있지만 정작 허브에서는 CSMA/CD가 없어서 각 호스트가 충돌을 감지한다.
frame buffering이 없다.

Switch
허브보다 똑똑한 link layer 장치.
store and forward 방식. 패킷을 다 받은 다음에 보낸다.
들어온 프레임을 버퍼에 저장했다가 맥어드레스를 보고 하나씩 보낸다. 보낼 때 CSMA/CD를 사용한다.
각 호스트가 스위치에 직접 연결된 링크를 가지고 있다. 충돌이 없다. 각 링크는 별도의 이더넷 프로토콜을 가지고 있다. 
스위치는 각 호스트가 스위치의 어떤 인터페이스에 연결되있는지 어떻게 알까? Self-learning!
self-learning
스위치는 스위치 테이블을 가지고 있다. 각 엔트리에는 호스트의 맥어드레스와 그 호스트로 갈 수 있는 인터페이스번호가 매핑되어 있다. 프래임을 받을 때마다 보낸 쪽의 맥 어드레스와 들어온 인터페이스번호를 테이블에 없으면 추가한다.
프래임을 포워딩할 때 테이블을 보고, 테이블에 있으면 그 인터페이스 번호로 포워딩하고 없으면 flooding(들어온 인터페이스를 제외한 모든 인터페이스에 프래임을 포워딩) 한다. flooding을 하면 해당되는 호스트에 응답이 오는데, 그 응답을 보고 테이블에 추가한다. 

스위치와 라우터비교
스위치는 링크레이어, 라우터는 네트워크 레이어.
스위치는 스위치테이블, 라우터는 라우팅 테이블을 가지고 있다.
스위치는 self-learning, 라우터는 라우팅 알고리즘이 있다. 

'공부 > 네트워크' 카테고리의 다른 글

Network Layer  (0) 2011.08.15
Transport Layer  (0) 2011.07.28
Application layer  (0) 2011.07.23


Posted by skyjumps