이 포스팅은 네트워크 기초 시리즈 5 편 중 3 번째 글 입니다.
목차
1계층 : 물리 계층 (데이터를 전기 신호로 변환)
- 비트
- 0, 1
- 비트가 모여 데이터 구성
- 비트를 주고 받는 것이 통신의 본질
- 바이트 = 8비트
- 워드 = 1바이트가 2개 (16비트)
- 데이터가 어떻게 전기 신호로 전달?
- 데이터가 전달되지 않을 때 전기적 신호가 존재
- Clock 신호
- CPU는 해당 신호에 맞춰 일을 처리한다.
- 디지털 세계에서의 시계라 할 수 있겠다. 행위의 단위가 됨
- Clock 신호
- 변조를 통해 데이터 신호를 얹는다. 위상을 변경시킨다고 말함
- 보내는 측에서 이 신호를 보내고, 받는 측에서 해석한다.
- 데이터가 전달되지 않을 때 전기적 신호가 존재
- 데이터 전달이란
- 전기적 신호가 매체를 통해 전달하는 것
- 케이블 : 이더넷 케이블
- 구리선으로 구성
- 전기적 신호가 잘 전달되어서 구리를 사용
- 저항이 있어서 먼곳까지 전달하기 어려움
- 왜 저항이 발생?
- 전기가 지나가면서 자기장 발생
- 전기장과 자기장은 항상 상호작용
- 0, 1의 신호를 구리를 통해서 보내면, 앞 신호의 자기장 때문에 뒷 신호가 왜곡된다.
- 신호의 감쇄와 왜곡을 줄이기 위해 꼬아둔 건데, 근본적 해결은 불가능
- 결과적으로 수신측에는 신호가 뭉개져서 판독이 불가하다. 빠르게 보낼 수록 못받을 확률은 더 심해진다.
- 리피터도 써야함
- 감쇄되기 때문에 증폭 시켜야 함
- 구리선으로 구성
- 케이블 : 광케이블
- 전기 신호를 빛으로 변경
- 먼거리 전송
- 속도 빠름
- 빛끼리는 이전 신호와 상호작용이 없음
- 빛 색으로(주파수로) 다양한 데이터 라인도 보낼 수 있다.
- 랜카드
- 네트워크를 통해 데이터를 송, 수신할 수 있도록하는 장비
- 메인보드에 포함되어 있음
- 내장형 랜카드, 혹은 별도의 랜카드를 통해 전기신호와 비트열을 변환할 수 있는 작업을 할 수 있다.
- 해당 랜카드에 이 네트워크 카드가 가지는 고유한 주소값을 가진다.
- MAC 주소! - 물리주소
- 집에 주소가 주어지는 것과 마찬가지
- 집 자체가 주소가 주어지는 것이 아니고 땅에 주어지는 것
- 마찬 가지로 컴퓨터에 주어지는 것이 아니고 랜카드에 주어지는 것
- 사용하는 네트워크 장비
- 리피터
- 전기신호를 복원하고 증폭
- 허브
- 여러개의 포트를 가지고 랜케이블을 통해 여러 컴퓨터와 통신가능
- 리피터
2계층 : 데이터 링크 계층 (랜에서 데이터 전송)
- 랜에서 데이터를 정상적으로 주고 받기 위해 필요한 계층
- 앞은 전달하기 위해 변환하는 과정이 주라 생각
- 이더넷
- 일반적으로 데이터 링크 계층에서 가장 많이 사용되는 규칙
- 랜에서 사용되는 규칙
- 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 사용
- 허브는 근본적으로 전기 신호를 받을 포트 뿐만 아니라 다른 포트에도 전달함
- 이 부분이 상당히 문제임. 그래서 규칙을 추가함
- 데이터에 목적지 정보를 추가해서, 목적지 이외의 컴퓨터에는 데이터를 받아도 무시하도록 한다.
- 또한 동시에 보낼 경우 충돌이 발생할 수 있다.
- 이런 경우 데이터를 보내는 시점을 늦춰서 충돌을 방지할 수 있게 설계하였다.
- 이 떄 사용되는 방법을 CSMA/CD라 한다.
- CS : 데이터를 보내려고 하는 컴퓨터가 케이블에 신호가 흐르고 있는지 아닌지를 확인하는 규칙
- MA: 케이블에 데이터가 흐르고 있지 않다면 데이터를 보내도 좋다는 규칙
- CD: 충돌이 발생하고 있는지를 확인하는 규칙
- 하지만 switch가 등장한 이후 잘 사용되지 않는다.
Ithernet Protocol
- Mac 주소
- 랜 카드에 할당된 전세계 유일한 번호
- 6바이트로 구성
- 앞쪽 24비트 : 제조사 번호
- 뒤쪽 24비트 : 제조사가 붙인 일련번호
- 이더넷 헤더
- OPI : 데이터 링크 계층, TCP/IP : 네트워크 계층 에서 붙이는 작업
목적지 MAC 주소
+출발지 MAC 주소
+유형
= 14바이트 (6 + 6 + 2)- 유형은 전송되는 상위 계층 프로토콜의 종류
- 즉, 그 위 계층인 네트워크 계층에서 사용하는 프로토콜을 말함
- 이건 사실 그 다음 계층으로 가기 위한 정보라 생각하면 됨
- 트레일러 FCS(Frame Check Sequence)
- 전송중 오류 발생 확인 용도
- 프레임
- 이더넷 헤더와 트레일러가 추가된 데이터
- Mac 주소를 통한 프레임 전송 과정
- A에서 B로 데이터를 전송한다고 생각해보자. 일단 내부 네트워크다.
- 이더넷 헤더에 출발 MAC 주소, 목적 MAC 주소를 담는다.
- 헤더와 트레일러를 추가하는 캡슐화를 진행한다. 프레임으로 된 것
- 물리 계층에서 이 프레임 비트열을 전기신호로 변환(아날로그)하고 네트워크를 통해 전송
- 이 때, 해당 데이터를 모든 컴퓨터는 받게 된다.
- 하지만 이터넷 헤더에 붙어있는 목적지 MAC 주소와 자신의 MAC 주소가 일치하지 않기 때문에 데이터를 파기한다.
- B는 역캡슐화를 하여 데이터를 수신한다.
- A에서 B로 데이터를 전송한다고 생각해보자. 일단 내부 네트워크다.
스위치의 구조
switch : 위키피디아
- 데이터 링크 계층에서 동작
- Layer 2 스위치, 스위치 허브라 불림
- 허브와 비슷하지만, 데이터 충돌을 방지할 수 있다.
- 이전에 허브에서는 데이터를 동시에 보낼 때, 문제가 발생하여 CSMA/CD 라는 방법을 통해 충돌을 방지함
- 이번에는 이 장치가 이 충돌을 방지함
- MAC Address Table
- 스위치 내부에 존재하는 맥 주소 테이블이다.
- 스위치의 포트 번호와 해당 포트에 연결되어 있는 컴퓨터의 MAC 주소가 등록되는 데이터 베이스임
- 전원을 처음에 딱 키면 Mac 주소 테이블에는 아무것도 등록이 안되어 있음
- 그런데, 프레임(아까 배운 데이터 싼 형태)가 전송되면 테이블에 추가가된다.
- 등록되어 있는 경우면 건너 뛴다.
- 이러한 기능을 MAC 주소 학습 기능이라고 한다.
- 문제점 (Flooding)
- 처음에 시작할 때 컴퓨터가 스위치에 이더넷 네트워크를 모두 꽂았다.
- 그런데 A라는 컴퓨터만 데이터를 송신했다.
- 그런 경우, 나머지 컴퓨터에서는 데이터를 송신하지 않았기 때문에, 등록이 안되어 있는 상태이다.
- 그렇기 때문에 이런 상황에서는 허브와 마찬가지로 동작한다는 한계가 있다.
- 이런 상황을 플러딩이라 한다.
Flooding
- 그런데 이번에는 B가 데이터를 전송해서 데이터 테이블에 저장이되어 있다고 생각해보자.
- 이런 경우는 허브처럼 작동하지 않고, 원하는 곳에만 데이터를 전송한다.
- 이를 MAC 주소 필터링이라고 한다.
- 만약 이상태에서 A->C라면?
- 플러딩이 발생한다.
Mac 주소 필터링
- 스위치가 사용하는 데이터가 케이블에서 충돌하지 않는 구조
- 통신 방식
- 전이중 통신 방식
- 송수신을 동시에 통신
- 회선이 두개 (송신쪽, 수신쪽)
- 반이중 통신 방식
- 송수신을 번갈아 처리
- 회선이 한개
- 전이중 통신 방식
- 허브
- 반이중
- 동시에 데이터를 보내면 충돌 발생
- 한쪽에서 보내고 있기 때문에 양쪽다 받을 수가 없다.
- 스위치
- 충돌을 아예 없앤 방식
- 전이중
- 통신 방식
허브의 경우 스위치의 경우
- 충돌 도메인
- 충돌이 발생할 때 영향을 끼치는 범위
- 허브
- 허브는 일단 모든 포트에 데이터를 다 보내버림
- 그렇기 때문에, A, B에서 데이터를 동시에 쏘면 일단 충돌이 나는데, 그럼 나머지 노는 컴퓨터들도 데이터를 못받고 충돌이 같이 난다.
- 그래서 전범위
- 스위치
- 일단 접속되어 있는 모든 컴퓨터에 영향을 미치지 않음
- 애초에 충돌을 방지하기도 함(전 이중)
- 그래서 충돌 도메인의 범위는 컴퓨터 하나로 좁아진다.
ARP(Address Resolution Protocol)
- 목적지 컴퓨터의 IP 주소를 이용하여 MAC 주소를 찾기 위한 프로토콜!
- ARP 요청
- 이더넷 프레임을 전송하려면, 목적지 컴퓨터의 MAC 주소를 알아야 한다.
- 이걸 위해 출발지 컴퓨터가 네트워크에 브로드 캐스트 하는 것을 ARP 요청이라 함
- 브로드 캐스트
- 출발지 컴퓨터에 연결된 모든 컴퓨터에 요청을 보내는 방식
- 요청에 대해 IP 주소를 가지고 있지 않은 컴퓨터는 응답하지 않고, 지정된 IP주소를 가지는 컴퓨터는 MAC주소를 응답으로 보낸다.
- 이렇게 응답을 받게되면 이더넷 프레임을 만들 수 있게 된다.
- 이후 출발지 컴퓨터는 MAC 주소와 IP 주소의 매칭 정보를 메모리에 보관한다.
- 이를 ARP 테이블이라 한다.
- 하지만 IP 주소가 변경되면 해당 MAC 주소도 함께 변경되어 제대로 통신이 불가하다.
- 그래서 ARP 테이블은 보존 기간을 ARP 캐시로 저장하고, 일정 기간이 끝나면 삭제하고 다시 요청한다.
- 정리
- ARP: 네트워크 계층 주소와 데이터 링크 계층 주소 사이의 변환을 담당하는 프로토콜이며 IP 주소를 물리 주소인 MAC 주소로 변환하는데 사용한다.
- ARP 캐시: 가장 최근에 변환한 IP와 하드웨어 주소(MAC 주소)를 매핑하려 보관하고 있는 램의 한 영역이다.
- ARP 요청: IP 주소를 대치할 수 있는 물리 주인 MAC 주소를 찾아내기 위해 보내는 브로드캐스트 패킷 요청이다.
- ARP 응답: ARP 요청에 대한 응답으로 요청한 IP 주소에 대한 물리 주소인 MAC 주소가 실려 있는 유니캐스트 패킷 응답이다.