- Data-Link Layer 는 직접 연결되어 있는 것들을 관리
- node - to - node Communication
- physical layer 와 network layer 사이에 위치
- physical layer 에게 서비스를 제공받음.
- network layer 에게 서비스를 제공함.
- Data-Link layer 가 제공하는 services
1) Framing
2) Flow control :
- 내가 얼마만큼 데이터를 보내야 하는지 = 상대가 얼마나 받을 수 있는지
- 너무 많은 데이터를 보내면 데이터를 잃어버림 -> 재전송해야함 ( 비효율적임. )
3) Error control :
- 데이터가 잘못 전송되었는지 판단
- 잘못 전송되었다면 어떻게 행동해야할지 결정
4) Media access control ( broadcast link 일때만 )
- two categories of links
1) point - to - point link : 1 대 1 링크
2) broadcast lint : 1 대 전체 링크
- Two sublayers
1) Data Link Control ( DLC )
2) Media Access Control ( MAC )
- Three types of addresses
1) Unicast address : one-to-one 통신
2) Multicast address : one-to-many 통신
- multicast address 에서 ARP 프로토콜 사용.
-> 많은 사용자들 중 내가 보내고 싶은 사용자들을 고를 때 사용.3) Broadcast address : one-to-all 통신
- Address Resolution Protocal ( ARP ) - 주소 확인 프로토콜
- ARP Operation
- broadcast address 사용해서 전체 중 특정 사용자를 찾음.
- 요청을 받은 전체 사용자는 unicast address 를 사용해서 요청한 사용자에게 본인이라고 답하면 됨.
- 위의 예시사진으로 보면
- Alice 가 R1 에게 ARP packet 보냄.
- R1 이 Alice 에게 ARP packet 에 대한 답변 전송.
- R1 이 R2 에게 ARP packet 보냄.
- R2 가 R1 에게 ARP packet 에 대한 답변 전송.
- R2 가 Bob 에게 ARP packet 보냄.
- Bob 이 data receive
- ARP Cache를 20분간만 저장 후 없앰.
- IP A -> PCK B 로 보낸다고 가정
- 이때 B 의 주소가 바뀌었을 때 cache 가 사라지지 않는다면 계속해서 이전의 B 주소로 보냄. ( 받을 사람 없음. )
- cache 가 20분 후 만료된다면 다시 요청 시 바뀐 B 의 주소가 불러져서 제대로 보낼 수 있음.
- ARP 에 대해 알아야 할 사항
- 존재하지 않는 호스트에 대해 ARP가 요청된다면?
-> 요청하는 시간간격을 늘리면서 계속 요청하다가 결국 포기- 호스트가 자신의 IP 주소에 대해서 ARP 요청을 하면?
-> 일반 ARP 인것처럼 응답.
- 이것은 IP 주소가 이미 할당되었는지 확인하는데 유용
-> 내가 쓰고싶은 주소로 ARP 를 날려봄.
-> 응답이 오면 누가 그 주소를 사용하고 있다고 확인 가능.
- 요청하지 않은 ARP 회신
- 모든 시스템은 ARP 요청에 대해 스푸핑을 할 수 있음.
-> 중간에서 가로채서 대신 대답할 수 있음.- 이러한 상황을 "ARP poisoning" 이라고 부름.
-> static ARP 를 사용해 해결.
-> encrypt ( 암호화 ) 를 통해 해결