본문 바로가기

728x90

ComputerScience/Network

(61)
컴퓨터통신 - 13. Sliding Window 프로토콜 구현 1 1. 프로토콜 구현 - 오류제어 이전까지는 NIC같은 어댑터에서 하드웨어로 구현하였다. - 오류제어는 소프트웨어로 구현된다. - 송신자, 수신자의 서로 다른 쓰레드가 concurrent를 유지하면서도 distributed한 program으로 구현되어야 한다. 2. 슬라이딩윈도우(GoBackN) - 여러가지 파생 버전이 있지만 우리가 구현할 알고리즘을 먼저 정리하자. - 송신자가 Fi를 보내면 수신자는 Ack(i+1)을 보낸다고 하자. - 송신자는 복수개의 frame을 보냈다는 신호를 보낸다. - 수신자는 F2까지 받았으니 ack3을 보내서 F3번을 달라는 신호를 보낸다. 3. 송신자 알고리즘 - 각 프레임에 순서번호를 할당해야 하고 - 윈도우크기는 SWS로 상수로 정해준다. - 현재 윈도우의 시작과 끝을..
컴퓨터 통신 - 12. 오류복구2 1. Sliding Window - stop&wait 방식에서의 단점은 ack가 오는 시간동안 일을 하지 않는다는 것이다. - 아직 ack를 받지 않은 상태에서 보내지는 프레임을 outstanding frame이라고 한다. 위 그림에서는 frame 0 이 여기에 해당한다. - 그러면 이 outstanding frame을 복수개 사용해서 전달하면 어떨까? - 무작정 무한대로 개수를 늘리는 건 아니고 제한된 window size만큼만 늘린다. - 즉 그림처럼 복수개의 frame을 연속으로 날리는 것이다. - stop&wait과 마찬가지로 각각의 frame#에 해당하는 ack#를 받아서 오류를 처리한다. * 그림에서는 수신받은 frame마다 ack를 보내지만 세개의 frame을 다 받고 한번에 ack를 보내도..
컴퓨터 통신 - 11. 오류 복구 1. 오류 복구 - 2계층에서 frame을 보내고 오류를 검출하는 방법까지 알아봤다. - 검출까지는 NIC에서 하드웨어 차원의 작업이지만 이번에는 sw차원에서 오류를 수정하는 방법을 알아본다. - 참고로 비트오류만 존재하는 것이 아니라 frame자체에서 오류가 생길 수도 있다. frame자체 오류가 생기면 수신자가 frame을 수신하는 것 차제가 불가능할 수 있기 때문에 반드시 송신자입장에서의 복구과정도 필요하다. 2. 수신자가 복구 - Forward Error Correction: FEC - 2차원 패리티 같은 오류 수정 코드를 사용한다. - 완벽한 복구는 사실상 어렵다. - 보통은 오류가 발생한 것을 인식하면 재 전송을 요청하지만 전화처럼 순간순간 재전송이 불가능 하다면 오류 수정 코드가 나름 유용할..
컴퓨터통신 - 10. Framming, 오류검출 1. Framming - 데이터를 끊임없이 계속 보낼 수는 없다. - 따라서 비트들의 연속을 묶음들로(frame) 잘라서 보낸다. - 이때 frame을 보낼때 추가로 처음, 끝 등의 정보들을 추가한다. - 이 작업은 2계층에서 이루어진다. - 1계층에서 신호를 하나씩 bit로 바꾸어 보낸다면 2계층에서는 데이터+헤더로 묶음처리해서 보낸다. 2. Byte Oriented Protocols - frame을 바이트 중심으로 해석하는 방법이다. Sentinel Approach (보초 방법) - syn : 수신자에게 frame 수신을 알리는 문자이다 - soh : 헤더의 시작을 알리는 문자 - stx : body의 시작을 알리는 문자. - etx : body의 끝을 알리는 문자. ByteCounting Appro..
컴퓨터 통신 - 9. Modulation (디지털데이터->디지털신호) 1. NRZ 인코딩 - Non-return to Zero - 만약 1Mbps로 데이터를 보낸다고 하면 한 비트의 폭은 1msec가 된다. - 이1msec 폭으로 하나의 비트를 보내고 수신자는 그 간격으로 하나의 비트를 인식하는 것이다. - 정확히는 간격의 중간 지점에서 신호를 sampling한다. 따라서 송신자와 수신자 모두 동일한 clock이 유지되어야 한다. - 송신자와 수신자의 clock이 다르면 잘못된 비트를 인식할 수 있다. 즉 송수신자는 반드시 clock이 같아야 한다. 2. NRZI - Non-return to Zero Inverted - 1을 보낼때 현재 신호로부터 중앙지점에서 전이(mid transition)를 하는 방법이다. - 송신자는 NRZ와는 다르게 비트 정보를 알려줌과 동시에 시..
컴퓨터통신 - 8. Modulation (디지털 데이터->아날로그신호) 1. 인코딩 (Encoding) - 신호는 물리적 매체를 통해 전달된다. - 디지털 데이터가 어댑터를 거쳐 아날로그, 디지털 신호로 변환되어 전달된다. - OSI 1계층에서 수행되는 작업이다. 2. Digital Transmission - 과거에는 아날로그 신호를 앰프로 단순히 키워 보냈지만 동시에 noise도 커지는 문제가 있었다. - 멀리 디지털 신호를 보낼때 신호에서 데이터를 복원해서 다시 신호화 하는 역할을 수행하는 것이 repeater이다. (앱프보다 비용도 싸고 노이즈도 줄일 수 있다, 중계에서의 이점) - 이런 디지털 신호의 전송은 중계가 매우 편하고, 부가기능 추가 등의 다양한 작업이 가능하다. - 따라서 요즘은 유선 링크의 경우 아날로그 신호의 전송을 잘 하지 않는다. - 단 디지털 신호..
컴퓨터 통신 - 7. 무선 통신 1. 무선링크 (Wireless) - 고정된 링크가 아니기 때문에 이동하면서 통신이 가능하다. - 물리적 링크를 깔기위한 공사가 불필요하다. - 유선 링크는 피복에 쌓여있어 신호의 경로가 통제가 되지만 무선통신은 신호가 자꾸 공중으로 퍼져 나간다. - 따라서 공중을 타는 다른 링크와 간섭 발생이 가능하기 때문에 서로 다른 주파수 대역을 사용하도록 구분을 해 놓는다. ex) 라디오, 전화 등 - 또한 무선 링크는 경로가 다양할 수 있기 때문에 간섭이 발생하기 쉽다. 게다가 점점 고주파 신호를 사용하기 때문에 더욱 간섭에 취약하다. - multi-path problem : 특히 고주파의 경우 비트간 간격이 좁다. 그런데 신호를 보내는 중에 어떤 비트는 벽에 튕기느라 조금 늦게 도달할 수도 있다. 비트간 간격..
컴퓨터통신 - 6. 데이터 링크 계층, 노드, 링크, 신호 1. 데이터 링크 계층 - 2계층은 하나의 링크로 연결된 두 노드 사이의 비트 묶음(frame)교환을 담당하는 계층이다. - 2계층에서 프로토콜들이 주고 받는 메세지를 frame이라고 하고 데이터 단위를 PDU라고 한다. - bluetooth가 데이터 링크 계층간 통신의 한 예시이다. 2. 노드 - 단말, 호스트, 스위치, 라우터를 나타낸다. - 좌측 노드(컴퓨터)를 Network Interface Card, LAN, BP, Wifi 등의 네트워크 어댑터를 통해서 네트워크에 연결한다. - 저 어댑터가 몇개씩 있어서 많은 링크와 연결이 된다 하더라도 메모리가 느리기 때문에 병목이 노드에서 발생한다. - 고속의 여러 링크에서 데이터가 쏟아져도 버스를 돌아가면서 사용하고 메모리에 데이터를 저장하고 꺼내는 시간..

728x90