frame 변환 (서로 데이터 타입을 맞춰줌)
msg→segment→packet→frame
교환(routing) : 맞는 포트로 보내줌
필터링
라우팅 테이블에서 네트워크 세그먼트의 있는 호스트의 MAC 주소가 존재하는데, 여기서 비교를 한다.
floding : 일단은 데이터는 모든 포트로 보낸다. 후에 자기 주소에 맞는 호스트가 응답을 한다.
스패닝 트리는 네트워크의 비 순환 구조이다.
브리지로 연결할 때 순환구조가 발생할 수 있기 때문에 스패닝트리를 사용해 비 순환 구조로 만드는 것이다.
소스 라우팅 브리지는 프레임을 보고
라우터는 외부로 네트워크를 확장시키기 위해 필요하다.
라우터를 고정하면 길찾기를 복잡하게 할 필요가 없을 수도 있다. → 효율적이다.
고정 : 송수신 호스트 사이에 영구 불변의 고정 경로를 배정
단점 : 트래픽 변화에 따른 동적 경로 배정이 불가능하다. → 빠른 경로를 선택을 못함
→ 상황에 따라 빠른 경로를 선택하는 방법은 적응 경로 라우팅이라 한다.
전송률 : 한번에 보낼 수 있는 량
전송 지연 : 응답을 받을 때 까지 걸리는 시간
전송 오류율
우선순위
교환 : 라우터에서 데이터를 어느 방향으로 전달할지를 선택하는 기능
전송 : 일대일(1:1)로 직접 연결된 두 시스템 간의 신뢰성 있는 데이터 전송을 보장
Point to Point (유니 캐스팅 , 점대점), Point to MultiPoint - 브로드 캐스팅(전부 다받음), 멀티캐스팅(특정그룹)
오류 감지를 일정 시간을 정해 시간 이후 응답이 안오면 송신자가 분실로 판단, 송신자는 분실 판단시 재송신→ 타임아웃시 재 송신
변형 감지는 수신자가 한다. 수신자가 응답을 보내 송신자가 재송신을 해준다.
각 송신, 수신자들은 버퍼가 있다.
거기에 패킷이 들어간다.
프레임
데이터 링크 계층에서 만듬
헤더/데이타/트래일러로 이루어져 있다.
네트워크 계층에서 패킷을 받아 Data에 넣는다.
양쪽 헤더, 트래일러는 제어정보를 담는다.
헤더에는 수신,송신 맥 어드레스가 있고, 트래일러에는 오류 검출을 위한 코드가 있다.
8비트 = 1 character → 문자 프레임
비트열로 만드는 비트 프레임
두 가지의 프레임이 있다.
프레임을 만들때 stuffing 기술이 필요하다.
프레임의 구조
프레임의 시작과 끝에 특수문자 사용
시작 : DLE/STX
끝 : DLE/ETX
전송 데이터에 특수 문자가 포함되면 혼선이 발생한다.
제어문자를 데이터로 인식할 수 있도록 하는 것이 Stuffing 기법이다.
→ 문자 프레임의 전송 과정에서 제어 문자를 추가하는 기능
- 전송 데이터가 DLE 문자를 포함하면 뒤에 DLE 문자 하나를 강제 추가
- 데이터에 DLE 문자가 두 번 연속 있으면 하나의 DLE 문자 삭제
비트 프레임
프레임의 시작과 끝 위치에 플래그라는 특수하게 생성된 비트 패턴(01111110)을 사용해 프레임 단위를 구분
오류 검출
수신자에서 에러체킹을 하지만 어느 비트가 문제있는지는 알지 못한다.
그래서 부정 응답을 송신자에게 보낸다.
그 후 송신자는 다시 재전송을 해준다.
즉 에러 체킹은 수신자에서, 복구는 송신자에서 한다.
→ 역방향 오류 복구(BEC, Backward Error Correction)
- 재전송 방식을 이용해 오류 복구
→ ARQ(Automatic Repeat reQuest 방식)
- 패리티(Parity) 비트
- 블록 검사
- 다항코드
패리티비트 → 기능 확장 → 블록 검사
패리티 → 짝수 패리티, 홀수 패리티
짝수 패리티 : 1의 갯수를 짝수로 만들어준다. → 1 또는 0을 넣어줌
홀수 패리티 : 1의 갯수를 홀수로 만들어준다. → 1또는 0을 넣어줌
가는 도중에 비트가 변경되면 패리티를 통해 에러 체킹이 가능하다.
비트가 2개씩 바뀌면 오류 검출을 못한다.
→ 개선 한 것이 블록 검사
수평, 수직 방향 모두에 패리티 비트를 지정
→ 짝수개의 비트가 깨지는 오류를 검출
블록검사 기법도 완전하지 않다.
두 개의 열이 2비트씩 바껴버리면 오류 검출이 불가하다.
패리티 비티를 너무 많이 채워넣게 된다.
전송할 데이터에 비해 패리티값이 너무 많아 전송 효율이 좋지 않다.
다항 코드
다항식 x^3 + x^2 + 1 → 다항식을 통해 키(다항코드)를 얻는다.
송신자 측에서 Encoding을 하여 데이터를 전달한다.
수신자 측에서는 Decoding을 하여 정상적으로 돌아왔으면 에러가 없는 것이다.
기존 데이터를 나타내는 비트와 checksum이라는 비트가 추가된다.
→ 총 패리티의 길이는 키(다항코드) 비트의 길이보다 작다.
첫 checksum은 000으로 붙인다.
checksum의 개수는 키보다 하나 작다.
checksum을 만드는 과정은 XOR 연산을 한다.
전송 데이터를 다항식으로 나눈다. → 연산에서 얻은 나머지 값 3자리가 체크 섬이다.
결과적으로 얻은 check sum을 붙인 값인
이 데이터로 전송된다.
- 국제 표준으로 이용되는 생성 다항식