가장 원초적인 네트워크
One to one network
- 단 두대의 호스트가 케이블로 직접 연결된 형태 (Point-to-Point)
- 각 호스트에 NIC이 장착, 단일 케이블을 통해 연결 (일단 다중화는 무시). 0과 1을 교환하면서 통신(bitstream).
네트워크의 본질은 더 멀리 대화하는 것. 좀 더 먼거리의 연결은..?
긴~ 케이블을 쓰면 될텐데..
Cat5의 경우 100m 스펙이 정해져있다 (그 이상은 속도 보장이 안 됨)
신호의 증폭! 리피터!
신호 감쇠가 문제면 다시 증폭혀
네트워크 증폭기(Amplifier) : Repeater (리피터)
- 수신한 신호를 증폭해서 재전송
- 회선 중간에서 신호 거리를 연장하고 품질을 향상
구조적으로 두 개의 포트를 가지고 있다.
- 입력된 신호를 반대편 포트로 재전송
- 서로 다른 인터페이스를 변환하는 역할로 사용되기도 함
실제 해저 케이블이 이렇게 연결된다고 합니다.!
그런데, 멀어질 수록 신호의 충돌 확률도 커진다..
- 회선이 하나라면 기본적으로 한쪽이 송신을 완료해야 다른쪽의 송신이 가능 (반이중)
- 둘 사이의 거리가 멀다 → propagation delay도 증가 (빛의 속도의 한계)
- h1이 신호를 보내는데 h2까지 도달 시간도 오래걸림
- h1의 신호가 미처 도달하기 전에는, h2는 회선이 비어있는줄 알고 송신을 시작
- 회선 어딘가에서 h1과 h2 신호의 충돌!
CSMA / CD
Carrier-Sense Multiple Access / Collision Detection
여러 장치가 동일한 매체를 공유하는 상황에서 충돌을 감지 → 처리
- Carrier sense, 캐리어 감지 - NIC은 데이터를 전송하기 전 회선이 비어있는지(반송파)를 확인
- Multiple Access, 다중 접근 - 비어있다고 확인이 되면 누구든 전송이 가능
- Collision detection, 충돌 감지 - 만약 충돌이 발생 → 비정상적인 신호 증폭/변화(반송파)를 탐지하여 이를 인식
- Back off - 충돌이 탐지되면 서로 임의의 시간을 기다린 후 다시 재전송 시도→ 충돌이 없을 때까지
더 멀리는 됐다.. 더 많이는..? 허브의 등장
더 넓은 통신 역시 네트워크의 본질.
더 많은 호스트를 연결하려면 리피터에 구멍이 많이 뚫자!!
Multi-port repeater → Hub
- 기본적으로 허브와 같이 '입력된 신호를 반대편 포트로 재전송' 하는 것은 동일
- 단, '그 반대편 포트가 여러개일 뿐'. ⇒ 그러다 보니 전달 신호는 Flooding 된다! (모든 호스트로 전달..)
허브는 모든 신호를 전달.. 호스트는 지한테 안 온 것도 받게 됨
L1 요약
호스트들의 물리적 연결과 비트의 전송, 기타 기능적 지원등을 담당하는 계층
전기적 신호의 단순한 연결!
- L1 장치 : 신호 증폭기 - 리피터, 허브
- L1 데이터 타입 : 비트스트림(Bitstream)
L1 장치는 전기 신호의 중계만 담당, 아무런 추가 기능이 없다.
L1's Challenge
- 신호가 누구로부터 누구에게 향하는지 알 수 없음!
- 호스트 갯수가 늘어난 만큼, 충돌 가능성도 높아짐!
사실 현대에는 CSMA / CD가 많이 안 쓰임.
현대에는 충돌 발생 자체가 거의 없음..
L2 장치의 역할과, 전이중 통신의 일반화 덕분..
- 전에 말했듯, UTP의 내부 선들이 송/수신 용도별로 가닥져있음
- 단지 CSMA/CD는 하위 호환성을 위해 남겨져 있는 상태
단, 전이중 회선이라도 순수 Hub 기반의 네트워크에서는 충돌이 필연적으로 발생
- 필연적으로 반이중 통신 구조가 되기 때문에..
- Hub는 모든 호스트들이 하나의 회선을 공유하는 것과 유사한 상태
- 어떤 호스트의 한쌍의 송수신 회선이 모든 호스트에 걸쳐 연결이 되려면 필연적으로 회선이 공유되어 반이중 형태가 될 수 밖에 없음
- 그래서 오늘날에는 허브가 거의 안 쓰임...
- 충돌이 많을 수 밖에 없으며, 반이중 통신 → 제 속도가 나기 힘들다.
- 허브는 L2의 스위치로 . 다 대체되었다..
- 허브라고 시중에 파는 것들 대부분 스위치 허브임...
- 신기하게도 100+Gbps의 초고속 환경에서는 허브가 되러 더 쓰이기도 한다!
- L2에서는 무언가의 처리가 더 추가가 됨 (Processing delay)
- 단순히 전기를 받아서 그대로 쏴주는 것 vs 무언가 처리가 하나 더 들어가는 것
- 100+Gbps 고대역 환경에서는 작은 처리 지연이 크게 다가오는 경우도 있어서 단순히 Hub로 다 뿌려버리는 경우도 있음
- L2에서는 무언가의 처리가 더 추가가 됨 (Processing delay)
충돌없이 더 많은 네트워크를 연결할 수 있는 Ring topology
각 노드들이 양 옆의 두 노드와 연결하여 전체적으로 고리 구성하는 네트워크
- 데이터가 한 방향(단방향) 또는 양방향으로 순환 가능
- 데이터 패킷은 한 노드에서 시작하여 순차적으로 다음 노드로 전달
- 특정 노드에 도달할 때까지 모든 노드를 통과
충돌 방지를 위한 'Token ring' 기법
- 네트워크의 한 노드가 토큰을 보유하고 있을 때만 데이터를 전송
- 토큰은 돌아가면서 차례대로 할당
간단하고 충돌도 생기지 않아 안정적이지만,,, 안 씀....
- 하나의 노드 또는 링크의 고장은 전체 네트워크에 영향
- 토큰이 없으면 전송을 못하므로 리소스 활용이 비효율적
- 유지보수와 확장성이 제한되는 편.
- star topology가 좋은데 이거 왜 씀 ?