물리계층에서 하는 일
0과 1만으로 이루어진 비트열을 전기 신호로 변환하고, 이것이 물리 계층을 통해 전달됨. 수신 측에선 전기 신호를 0과 1의 비트열 데이터로 복원.
컴퓨터는 네트워크를 통해 데이터를 송수신할 수 있도록 랜카드를 가지고 있음. 이를 통해 0과 1을(즉 비트열을) 전기 신호로 변환 가능.
암튼, 물리 계층은 컴퓨터와 네트워크 장비를 연결하고 이들간에 전송되는 데이터를 전기 신호로 바꿔주는 계층이다.
데이터링크계층에서 하는 일
랜에서 데이터를 정상적으로 주고 받으려면 데이터 링크 계층의 기술이 필요하다. 그 기술에 대해 알아보자.
데이터 링크 계층은 네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층이다. 이 규칙들 중 가장 많이 사용되는 것은 이더넷이며, 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고받을 때 이더넷을 사용한다. (허브는 약해진 전기신호를 다시 복원사쿄 전달받은 포트를 제외한 나머지 포트에 전기 신호를 전달하는 장치. 즉 허브는 일종의 경유지느낌인데, 경유지를 거쳐 목적지에만 딱 가야 하지만 경유지를 거치는 모든 집에 다 가게 되는 것임). 다만 허브 특성상 A입장에서는 B에만 보내고 싶지만 허브에서 갈 수 있는 다른 집들도 다 데이터가 보내지기 때문에, 목적지 정보를 추가해서 전송하여 목적지 이외의 컴퓨터들로 하여금 데이터를 받더라도 무시하도록 한다.
근데 이 허브에서 컴퓨터 여러 대가 동시에 데이터를 보낸다면 충돌이 일어날 수도 있는데, 이를 방지하기 위해 CSMA/CD라는 방법을 통해 데이터를 보내는 시점을 늦춘다. 즉 조절하는 것. 데이터를 보내려고 하는 케이블에 신호가 흐르고 있는지 확인한 다음, 흐르고 있지 않다면(즉 해당 통로를 누가 쓰고 있는 게 아니라면) 그 때 보내는 식이다. But..지금은 효율이 안 좋아서 CSMA/CD는 거의 안 쓴다고 함. 스위치라는 효율적인 장비가 생겼기 때문!
MAC주소?
랜카드는 비트열을 전기 신호로 변환한다고 앞서 설명했다. 이 랜카드에는 MAC주소라는 번호가 정해져 있는데, 이는 각 랜카드마다 고유하다 즉 전세계에서 유일한 번호로 정해진다. 내 랜카드의 번호가 001이면 지구상의 다른 랜카드 중에서 001이란 MAC주소를 갖는 랜카드는 없는 것이다.
데이터 송신 시 각 계층에서 헤더를 붙여 더 큰 덩어리로 만들어 다음 계층으로 보낸다고 했는데, 데이터 링크 계층에서는 헤더 말고도 트레일러를 붙인다고 했었다. 정확히 말하면 데이터 링크 계층에선 이더넷 헤더와 트레일러를 붙이는데, 이더넷 헤더는 목적지의 MAC주소와 출발지의 MAC주소 그리고 유형이라는 3가지 정보를 갖는다. 유형은 프로토콜 정보를 식별하는 번호라고 이해하면 됨. 트레일러는 FCS(Frame Check Sequence)라고도 부르며, 데이터 전송 도중 오류가 발생하는지 확인하는 용도로 쓴다. 암튼 뭐..이처럼 이더넷 헤더와 트레일러가 추가된 덩어리를 프레임이라고 부른다. 네트워크를 통해 이 프레임이 전송되는 것..! 더 구체적으론 물리 계층에서 이 프레임 비트열을 전기 신호로 바꾼 다음 네트워크를 통해 전송하는 것임. 참고로 아까 허브 구조에서 송신자는 데이터에 목적지 정보를 추가해서 목적지 이외의 다른 컴퓨터들로 하여금 데이터를 받더라고 무시하도록 한다고 했는데 이 때 목적지 정보가 목적지 MAC주소를 의미. 수신 계층에서는 물리 계층에서 전기 신호로 전송된 데이터를 비트열로 변환하고 데이터 링크 계층에서 이더넷 헤더와 트레일러를 분리한다.
스위치?
데이터 링크 계층에서 동작하는 장치이며 스위칭 허브라고도 부른다. 스위치 내부에는 MAC주소 테이블이란 것이 있는데, 이 테이블엔 스위치에 있는 포트 번호와 해당 포트에 연결된 컴퓨터들의 MAC주소가 등록된다. 아까 프레임 전송시 이더넷 헤더에 출발지의 MAC주소를 보낸다고 했는데, 이걸 보고 출발지 MAC주소를 그 포트와 함께 등록하는 식으로 MAC주소 테이블이 형성된다.
그러나 처음 데이터를 보내는 경우 출발지 MAC주소와 포트는 등록했지만, 도대체 어느 포트로 보내야 목적지 MAC 주소로 보내지는지 알 수 없을 수밖에 없다. 이 때는 뭐다? 일단 다 보내본다. 하나는 들어맞을 거니까..이렇게 일단 무지성으로 다 보내는 것을 플러딩(flooding)이라고 한다.
만약 목적지 MAC주소가 어느 포트번호가 매핑되는지에 대한 정보가 MAC주소 테이블에 있다면, 이를 참조해 다른 포트에는 안 보내고 그 포트에만 프레임을 보낸다. 이것이 허브와의 가장 큰 차이점이다. 허브는 일단 다 보내는데 목적지 MAC과 다른 MAC주소를 갖고 있으면 무시하도록 한 것이기 때문에 아무튼 다 보내진다는 단점이 있지만 스위치는 딱 필요한 데만 보내기 때문. 이를 MAC주소 필터링이라고 한다.
케이블에 데이터가 아무리 많이 전송되어도 충돌하지 않는 이유?
먼저 통신 방식은 두 개로 분류할 수 있다. 첫 째는 데이터의 송수신을 동시에 하는 전이중 통신 방식이고, 둘째는 회선 하나로 수신과 송신을 번갈아가며 하는 반이중 통신 방식이다. 컴퓨터 A, B를 직접 랜케이블로 연결한다면 전이중 통신 방식을 사용하게 되지만(즉 양측에서 동시에 데이터 송신 가능. A가 송신하는 케이블은 B에겐 수신케이블이고, A가 수신하는 케이블은 B에겐 송신케이블임) 허브는 송수신용 케이블이 나누어져 있지 않기 때문에 동시에 데이터를 보내면 충돌이 일어난다. 즉 이땐 회선 하나를 수신과 송신이 번갈아가며 사용하는 반이중 통신 방식이 사용된다.
B U T 스위치는 포트별로 수신통로와 송신통로가 별도로 있기 때문에, 전이중 통신 방식 즉 동시에 송수신이 가능하다.
암튼 다시 허브로 돌아와서, 반이중 방식으로 동시에 데이터를 전송하면 충돌이 나는데 이 충돌의 영향이 미치는 범위를 충돌 도메인이라고 한다. 허브는 연결되어 있는 컴퓨터 전체가 충돌 도메인이 된다. 스위치는 데이터를 동시에 송수신 가능한 전이중 통신 방식이므로 충돌이 일어나도 충돌 도메인의 범위가 훨씬 좁다. 내(A)가 C에게 송신하려는데 C가 이미 B로부터 뭔가 받고 있다면 나만 기다리면 되는 거고 D, E이런 애들은 상관 없는 거니까.
'CS > 컴퓨터네트워크' 카테고리의 다른 글
[컴퓨터 네트워크] 전송계층(transport layer) - TCP & UDP 간단하게 쓰다듬기 (0) | 2022.04.19 |
---|---|
[컴퓨터네트워크] 네트워크 계층 손으로 쓱 터치하기 (0) | 2022.04.19 |
[컴퓨터네트워크] 네트워크 / 랜 / 왠의 뜻, OSI 7계층 (0) | 2022.04.18 |
[컴퓨터 네트워크] 인터넷의 구조 (0) | 2022.03.10 |
[컴퓨터 네트워크] 인터넷과 프로토콜의 개념, 그리고 네트워크의 구조 (0) | 2022.03.03 |