✔️ TCP flag
1. FLAG 순서
+-----+-----+-----+----+-----+----+
| URG | ACK | PSH | RST | SYN | FIN |
+-----+-----+-----+----+-----+----+
각각 1비트로 TCP 세그먼트 필드 안에 cONTROL BIT 또는 FLAG BIT 로 정의 되어 있다.
1) SYN(Synchronization:동기화) - S : 연결 요청 플래그
TCP 에서 세션을 성립할 때 가장먼저 보내는 패킷, 시퀀스 번호를 임의적으로 설정하여 세션을 연결하는 데에 사용되며 초기에 시퀀스 번호를 보내게 된다.
2) ACK(Acknowledgement) - Ack : 응답
상대방으로부터 패킷을 받았다는 걸 알려주는 패킷, 다른 플래그와 같이 출력되는 경우도 있습니다.
받는 사람이 보낸 사람 시퀀스 번호에 TCP 계층에서 길이 또는 데이터 양을 더한 것과 같은 ACK를 보냅니다.(일반적으로 +1 하여 보냄) ACK 응답을 통해 보낸 패킷에 대한 성공, 실패를 판단하여 재전송 하거나 다음 패킷을 전송한다.
3) RST(Reset) - R : 연결 종료
재설정(Reset)을 하는 과정이며 양방향에서 동시에 일어나는 중단 작업이다. 비 정상적인 세션 연결 끊기에 해당한다. 이 패킷을 보내는 곳이 현재 접속하고 있는 곳과 즉시 연결을 끊고자 할 때 사용한다.
4) PSH(Push) - P : 밀어넣기
TELNET 과 같은 상호작용이 중요한 프로토콜의 경우 빠른 응답이 중요한데, 이 때 받은 데이터를 즉시 목적지인 OSI 7 Layer 의 Application 계층으로 전송하도록 하는 FLAG. 대화형 트랙픽에 사용되는 것으로 버퍼가 채워지기를 기다리지 않고 데이터를 전달한다. 데이터는 버퍼링 없이 바로 위 계층이 아닌 7 계층의 응용프로그램으로 바로 전달한다.
5) URG(Urgent) - U : 긴급 데이터
Urgent pointer 유효한 것인지를 나타낸다. Urgent pointer란 전송하는 데이터 중에서 긴급히 전당해야 할 내용이 있을 경우에 사용한다. 긴급한 데이터는 다른 데이터에 비해 우선순위가 높아야 한다.
EX) ping 명령어 실행 도중 Ctrl+c 입력
6) FIN(Finish) - F : 연결 종료 요청
세션 연결을 종료시킬 때 사용되며 더이상 전송할 데이터가 없음을 나타낸다.
✔️디지털 신호의 전송
우리는 어떻게 디지털 신호를 A지점으로부터 B지점까지 보낼 수 있을까?
우리는 디지털 신호를 변조(Modulation)해 다음 두 가지의 방법으로 전송할 수 있다.
1. 기저 대역 전송 (Baseband Transmission)
디지털 신호를 변조하지 않고 그대로 전송하는 방식이며, 변조를 하지 않기 때문에 모뎀이 필요 없고, 근거리 전송에 주로 사용
장점
- 네트워크 운영 비용이 저렴
- 양방향 전송이 가능
- 네트워크 구성이 간단해 근거리 통신에 많이 사용
단점
- 장거리 전송 시에는 리피터 장치를 필요하기 때문에 장거리에는 부적합
- 통신 잡음에 쉽게 변형되어서 손실이 큼
2. 광대역 전송 (Broadband Transmission)
디지털 신호를 여러 개의 신호로 변조해서 다른 주파수 대역으로 동시에 전송하는 방식이며, 장거리 전송에 주로 사용
장점
- 장거리 전송에 효율적이고 비용이 저렴
- 잡음에 의한 신호 감소가 적음
- 다중 채널을 사용해서 음성, 영상 등을 전송
단점
- 회로가 매우 복잡하기 때문에 설치 및 관리 어려움
- 베이스밴드보다 속도 느림
- 단방향 전송
광대역 전송에서는 디지털 신호를 전송하기 위해 아날로그 신호로 변조 후 사용한다.
[PHS 서비스]
- 무선전화기 단말기를 그대로 휴대전화로서 사용 가능
- 전화기가 작고 가벼움
- 휴대전화보다 요금이 쌈
- 전지의 사용시간이 김
- 디지털 방식으로 잡음이 적음
- 도청하기 어려움
- 지하도에서도 사용 가능
- 무전기로서의 사용 가능
- multi-media에 대응 가능
✔️ OSI 7 계층
Layer 1 : 물리 계층(Physical layer)
- 전기, 기계적인 신호를 주고받는 역할을 하는 계층
- 디지털에서 아날로그 혹은 그 반대로 신호를 변환
- OSI 모델에서 가장 복잡한 계층
- 전송 단위 : 비트(Bit)
- 대표적인 장비 : 통신 케이블, 허브, 리피터, 어댑터 등등
Layer 2 : 데이터링크 계층(Data link layer)
- 물리적인 연결을 통해 인접한 두 장치 간의 신뢰성 있는 정보 전송을 담당하는 계층
- 에러 검출, 재전송, 흐름 제어 역할을 함
- Point-To-Point 전송
- MAC 주소를 통해 통신
- 전송 단위 : 프레임(Frame)
- 대표적인 장비 : 스위치, 브릿지, 이더넷 등등
Layer 3 : 네트워크 계층(Network layer)
- 종단 간 주소(IP)를 정하고 경로(Route)를 선택하고 패킷(Packet)을 전달하는 계층
- End-To-End 혹은 Host-To-Host 전송
- 라우팅 기능을 맡고 있으며 목적지까지의 최적경로 알고리즘을 사용
- 전송 단위 : 패킷(Packet)
- 대표적인 장비 : 라우터, L3 스위치, IP 공유기
Layer 4 : 전송 계층(Transport layer)
- 종단 간 신뢰성 있고 정확한 데이터 전송을 담당하는 계층
- 신뢰성 있고 효율적인 데이터 전송을 위해 오류 검출, 복구, 흐름 제어, 중복 검사 등을 수행
- 데이터 전송을 위해 Port번호 사용
- 전송 단위 : TCP-세그먼트(Segment), UDP-데이타그램(Datagram)
- 방화벽이나 프록시 서버가 여기에 해당
Layer 5 : 세션 계층(Session layer)
- 통신 장치 간의 상호작용 및 동기화를 제공하는 계층
- TCP/IP 세션을 만들고 없애는 역할
- 통신을 하기 위한 세션을 확립, 유지, 중단하는 역할
- 연결 세션에서 데이터 교환과 에러 발생 시 복구 관리
Layer 6 : 표현 계층(Presentation layer)
- 데이터를 어떻게 표현할지를 정하는 역할을 하는 계층
- 데이터 인코딩/디코딩, 압축/해제, 암호화/복호화 수행
Layer 7 : 응용 계층(Application layer)
- 사용자와 가장 밀접한 계층으로 인터페이스 역할을 하는 계층
- 응용 프로세스 간의 정보 교환을 담당
- 텔넷, 크롬, 이메일, 데이터베이스 관리 등등의 서비스가 여기에 해당
OSI 7 계층 요약표
구분 | 계층 | 계층명(PDU) | 기능 |
상 위 층 |
7 | 응용(Data) | 사용자에게 서비스 제공 역할 DHCP, DNS, SMTP, FTP, HTTP등 사용자가 원하는 최종 목표에 해당 |
6 | 표현(Data) | 데이터의 인코딩/디코딩, 압축/해제, 암호화/복호화 담당 | |
5 | 세션(Data) | 통신하는 프로세스 사이의 대화 제어 및 동기화 담당 연결 세션에서 데이터 교환과 에러 발생 시 복구 담당 |
|
하 위 층 |
4 | 전송 (TCP - Segment, UDP - Datagram) |
종단 간 신뢰성있는 데이터 전송을 담당 오류검출, 복구, 흐름제어, 중복검사 수행 데이터 전송을 위해 Port 번호를 사용 |
3 | 네트워크(Packet) | 종단 간 전송을 위한 경로 설정을 담당(IP주소 사용) 호스트로 도달하기 위한 최적의 경로를 라우팅 알고리즘을 통해 선택하고 제어 |
|
2 | 데이터 링크(Frame) | 인접한 노드간의 신뢰성있는 데이터 전달 신뢰성을 위해 흐름제어, 오류제어, 회선제어 수행 MAC 주소를 통해서 통신 |
|
1 | 물리(Bit) | 물리매체를 통해 bit 흐름 전송 물리적으로 연결된 노드간의 신호 전송 |
✔️회선 교환과 패킷 교환
1. 패킷 교환(Packet switching)
1) 패킷 교환의 특징
- 작은 블록의 패킷으로 데이터를 전송하며 데이터를 전송하는 동안만 네트워크 자원을 사용
- 정보 전달의 단위인 패킷은 여러 통신 지점(Node)을 연결하는 데이터 연결 상의 모든 노드들 사이에 개별적으로 경로가 제어.
- 짤막한 데이터 트래픽에 적합
- 패킷 교환방식에는 데이터그램과 가상 회선방식이 있음
- 패킷교환은 경로설정, 트래픽 제어, 에러제어 기능을 지님
기능 | 설명 |
경로설정 | 발신자와 목적지가 직접 연결되지 않으므로 각 패킷을 네트워크를 통해서 노드에서 노드로 보내는 기능 |
트레픽제어 | 네트워크에 전송되어지는 트래픽의 양을 효율적이고 안정하게 하기 위해서 통제하는 기능 |
에러제어 | 네트워크에서 유실되는 패킷에 대해 제어하는 기능 |
패킷 다중화 | 동시에 다수의 상대 터미널과 통신을 수행하도록 하는 기능 |
2) 패킷 교환의 장단점
장점
- 회선 이용률이 높다
- 고 신뢰성, 고품질, 고효율이다
단점
- 경로에서의 각 교환기에서 다소의 지연이 발생한다
- 패킷별 헤더 추가로 인한 오버헤드 발생 가능성
3) 패킷 교환의 고려 사항
▶ Store-and-Forward
- 데이터가 들어오는 속도와 나가는 속도를 맞출 필요 없이 각 스테이션에 맞도록 속도를 조절할 수 있다.
- 라우터가 패킷을 온전히 다 수신한 후 저장을 한 다음, 아웃 바운드 링크(전송하는 쪽의 링크)로 패킷을 내보낼 수 있는 데 이를 Store-and-Forward 라고 한다.
- Source에서 R bits/sec (bps)의 속도인 링크상으로 L bits의 패킷을 전송한다면 패킷을 전송하는데 걸리는 시간 : L/R 초
▶ Delay
- Processing Delay : 패킷헤더를 조사하고 그 패킷을 어디로 보낼지를 결정하는 시간
- Queuing Delay : 패킷은 큐에서 링크로 전송되기를 기다리면서 큐잉 지연을 겪는다
- Transmission Delay : 패킷의 길이를 L비트, 라우터 A에서 B까지의 링크 전송률은 Rbps라면, 전송지연은 L/R이다 (=패킷의 모든 비트를 링크로 밀어내는데 필요한시간)
- Propagation Delay : 일단 비트가 링크에 전해지면 라우터 B까지 전파되어야한다. 링크의 처음부터 라우터 B까지의 전파에 필요한 시간. d/s(d는 라우터 A와 B사이의 거리. s는 링크의 전파속도). 이는 빛의 속도와 같거나 그보다 조금 작다
위의 4개의 Delay를 다 합친 시간이 노드 상에서의 Delay(nodal)가 됨
▶ Loss
- A와 B가 보내는 패킷의 양이 많아지면 (트래픽이 많아지면) queue가 다 차버렸을 경우 그 뒤에 오는 패킷은 손실
2. 회선 교환(Circuit switching)
1) 회선 교환의 특징
- 회선의 설정, 데이터의 이동, 회선의 단절 등 3가지로 이루어짐
- 데이터가 전송되기 전에 두 단말장치 간에 회선을 설정하고, 회선이 설정되면 이 회선을 통해서 데이터를 전송하며, 일정시간이 지나면 두 단말장치 중 한 단말장치에 의해 연결이 단절됨
- 이 방식은 통신할 때마다 매번 통신 경로를 설정하기 때문에 통신 중에 전송제어절차, 정보의 형식 등에 제약을 받지 않아, 비교적 원거리 통신에 적합한 방식
- 회선이 단절되기 전까지 데이터를 전송하지 않을 때에도 다른 단말장치들이 이 회선을 이용할 수 없으므로 회선의 이용률 측면에는 불리하나 독점적으로 사용되기 때문에 주변의 트래픽이 많다고 회선이 끊어진다든지의 장애는 없음
2) 회선 교환의 장단점
장점
- 통신은 안정적. 다른 요인에 의해 통신이 방해 받지 않는다.
- 대용량의 데이터를 고속으로 전송할 때 좋음
- 전송 지연이 없으며, 데이터 전송률이 일정함
단점
- 네트워크 자원(network resource)을 많이 소모한다. 비효율적
3) 주파수 분할과 시분할 다중화
회선교환의 단점을 극복하기 위한 방법
주파수 분할 다중화 : 한 전송로의 대역폭을 여러개의 작은 채널로 분할하여 여러 단말기가 동시에 이용하는 방식. 채널간에 상호간섭을 막으려면 보호 대역이 필요.
시분할 다중화 : 전송로 대역폭 하나를 시간 슬롯으로 나눈 채널에 할당하여 채널 몇개가 한 전송로의 시간을 분할해서 사용.
3. 회선교환방식과 패킷교환방식의 특성 비교
특성 | 회선교환 | 패킷교환 |
대역폭사용형식 | 고정된 대역폭 전송 | 대역폭 동적 사용 |
대화식 사용면 | 대화식 사용이 가능할 정도로 빠름 | 대화식 사용이 가능할 정도로 빠름 |
메시지 저장 유무 | 저장 안됨 | 배달될 때까지 저장 가능 |
전송경로의 형태 | 전제전송을 위해 전송로 설립 | 패킷마다 전송로 설립 |
호출된 지국이 바쁠 때 | Busy 신호를 냄 | 배달불가할 때 송신자에게 통보 |
교환노드 종류 | 전자 기계식 또는 컴퓨터화된 교환 노드 | 소규모 교환 노드 |
속도와 코드 변환 여부 | 보통 없음 | 속도와 코드 변환 있음 |
오버헤드비트 | 호출 설정 후에는 오버헤드 비트 없음 | 각 패킷마다 오버헤드 비트 있음 |
💡 패리티비트 & 해밍코드 💡
데이터 오류 검출 방식
🔍 패리티비트 (Parity Bit)?
시리얼 통신에서 데이터의 오류를 검출하기 위한 일종의 장치 중 하나
정보 전달 과정에서 오류가 생겼는지 검사하기 위해 추가하는 비트로
전송하고자 하는 데이터의 각 문자에 1비트를 더하여 전송한다.

짝수 패리티
데이터의 모든 1의 개수를 짝수로 맞춰야 한다.
예를 들어, 1100100 의 1의 개수는 3개(홀수) 이므로, 자동적으로 패리티 비트는 1이 되어(11100100) 총 1의 개수는 4개(짝수) 가 된다.
홀수 패리티
데이터의 모든 1의 개수를 홀수로 맞춰야 한다.
예를 들어, 1100100 의 1의 개수는 3개(홀수) 이므로, 패리티 비트는 0이 된다.
짝수 패리티일 때,
데이터가 중간에 손실되서 11100100 이 아닌 11000100 이 가게 된다면 데이터가 손실 되었다는 것을 알 수 있다.
🔍 패리티비트 특징
- 2bit의 데이터가 손실되면 알아차릴 수 없다.
- 오류 검출만 할 뿐 수정하지는 않는다.
🔍 해밍 코드 (Hamming code)
데이터 전송 시, 1비트의 에러를 정정할 수 있는 자기 오류정정 코드
패리티비트를 보고, 1비트에 대한 오류를 정정할 곳을 찾아 수정할 수 있다.
해밍 코드 생성 규칙
2의 n승 번째 자리인 1,2,4번째 자릿수가 패리티 비트.
이 숫자로부터 시작하는 세개의 패리티 비트가 짝수인지, 홀수인지 기준으로 판별한다.

짝수 패리티의 해밍 코드가 0011011일때, 오류 수정
1, 3, 5, 7번째 비트 확인 : 0101로 짝수이므로 '0'
2, 3, 6, 7번째 비트 확인 : 0111로 홀수이므로 '1'
4, 5, 6, 7번째 비트 확인 : 1011로 홀수이므로 '1'
역순으로 패리티비트 '110'을 10진법으로 바꾸면 '6'이므로 6번째 비트를 수정하면 된다.
따라서 수정한 데이터는 0011001이다.
오류 발생 원인
1) 감쇠(Attenuation)
전송 신호가 전송 매체를 통과하는 과정에서 거리에 따라 점차 약해지는 현상
2) 지연 왜곡(Delay Distortion)
주로 유선 전송 매체에서 발생하며 하나의 전송 매체를 통해 여러 신호를 전달했을 경우 주파수에 따라 속도가 달라지면서 생기는 오류
3) 상호 변조 잡음(Intermodulation Noise)
서로 다른 주파수들이 하나의 전송 매체를 공유할 때 주파수 간 합이나 차로 인해 새로운 주파수가 생성되는 잡음
4) 충격 잡음(Impulse Noise)
번개와 같은 외부적인 충격이나 기계적인 통신 시스템의 결함 등 순간적으로 높은 진폭이 발생하는 잡음
Single-bit Error
sent -> 00000100
received -> 00010100
1 bit가 바뀌어서 전송된 것을 Single-bit Error라고 합니다.
하지만 인터넷이 매우 빠른 속도로 전송되기 때문에 보통은 잘 발생하지 않고, 2 bit 이상 바뀌어서 전송되는 Burst Error가 발생합니다.
어디서부터 오류가 발생했는지 해당 오류 길이를 Length of Burst라고 합니다.
이러한 전송 오류를 제어하는 Error Correction 방식에는 FEC와 BEC가 있습니다.
FEC(Forward Error Correction : 전진 에러 수정)
데이터 전송 과정에서 발생한 오류를 검출해 재전송 요구 없이 스스로 수정하는 방식입니다.
송신측에서 문자나 프레임에 오류 검출을 위한 확장 데이터를 추가해 전송해 수신측에서 이를 활용해 수신한 데이터에 오류가 발생했는지 검출하고 수정합니다.
연속적인 데이터 전송이 가능하지만, 확장 데이터로 인해 전송 효율이 떨어집니다.
BEC(Backward Error Correction : 후진 에러 수정)
데이터 전송 과정에서 오류가 발생하면 송신측에 재전송을 요구하는 방식입니다.
패리티 검사, CRC 등을 이용해 오류를 검출하고, 자동 반복 요청(ARQ: Automatic Repeat reQuest)으로 오류를 제어합니다.
(오류 제어 방식과 관련한 슬라이딩 윈도우 프로토콜 다시 학습하기 -> https://junboom.tistory.com/22)
여기서 이용하는 패리티 검사, CRC, 체크섬, 해밍코드에 대해서 알아보겠습니다.
1. 패리티 검사(Parity Check)
1의 개수를 짝수 개로 맞춰서 보낼지(Even Parity), 홀수 개로 맞춰서 보낼지(Odd Parity) 송신측과 수신측이 약속하고 여분의 bit(패리티 비트)를 채워 보내는 것입니다.
하지만 패리티 비트는 Single-bit Error와 같이 홀수 개의 오류만 검출할 수 있고, 짝수 개의 오류는 검출하지 못하는 문제점이 발생합니다.
이를 해결하기 위해 Two-dimensional Parity Check(2차원 패리티 검사)가 나왔습니다.
Two-dimensional Parity Check는 수평(LRC: Longitudinal Redundancy Check)과 수직(VRC: Vertical Redundancy Check)으로 패리티 비트를 추가하고, 모두 카운트합니다. 만약 수평에서 짝수 개의 비트가 바뀐다고 해도 수직 패리티 검사에서 검출할 수 있습니다.
하지만 수평과 수직으로 짝수 개씩 똑같이 바뀐다면 검출이 불가능 합니다. 근본적으로 이러한 패리티 비트의 한계가 있기 때문에 에러 검출 능력이 떨어집니다.
ex) Even Parity에서 검출 불가
sent received
1001 l 0 1001 l 0
0110 l 0 0000 l 0
0110 l 0 -> 0000 l 0
1001 l 0 1001 l 0
ㅡㅡㅡ 0 ㅡㅡㅡ 0
0000 0 0000 0
2. CRC(Cyclic Redundancy Chcek: 순환 중복 검사)
패리티 검사의 한계를 채워주기 위해 나온 오류 검출 방식입니다.
데이터에 오류가 발생했는지 확인하는 코드를 데이터 뒤에 확장 데이터를 덧붙여 보내는 방식입니다.
송신부
1) CRC 발생 코드를 선정합니다.
2) CRC 발생 코드의 최고 차수만큼 기존 데이터 뒤, 확장 데이터에 0을 붙입니다.
3) 기존 데이터 + 확장 데이터를 CRC 발생 코드로 Modulo-2 연산을 이용해 나눕니다.
4) 나머지가 0이면 확장 데이터를 그대로 전송합니다.
5) 나머지가 0이 아니라면 기존 데이터에 나머지를 붙여 전송합니다.
수신부
1) 수신된 코드를 동일한 CRC 발생 코드로 나눕니다.
2) 나머지가 0이면 오류가 발생하지 않은 것으로 판단합니다.
3) 나머지가 0이 아니라면 오류가 발생한 것으로 판단합니다.
Modulo-2 연산(XOR: Exclusive-OR과 동일)
0 +(-) 0 = 0
0 +(-) 1 = 1
1 +(-) 0 = 1
1 +(-) 1 = 0
3. 체크섬(Checksum)
중복 검사의 한 형태로 오류 정정을 통해 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법입니다.
송신부
1) 모든 byte 데이터를 더합니다.
2) 캐리니블(최상위 니블, 가장 앞에 위치한 4bit를 가리키는 컴퓨터 용어)을 버립니다.
3) 2의 보수를 취해 체크섬을 만듭니다.
수신부
1) 모든 byte 데이터와 체크섬을 더합니다.
2) 캐리니블을 버립니다.
3) 0x00이 나오면 오류가 발생하지 않은 것으로 판단합니다(오류가 발생해도 나오는 예외가 있음).
4) 0x00이 나오지 않으면 오류가 발생한 것으로 판단합니다.
ex)
0x84, 0xF2, 0x10, 0x55 데이터가 들어왔다고 가정합니다.
송신부
1) 모든 byte 데이터를 더합니다.
0x84 = 132,
0xF2 = 242,
0x10 = 16,
0x55 = 85
132 + 242 + 16 + 85 = 475
475 = 0x1DB
2) 캐리니블을 버립니다.
0x1DB = 0001 1101 1011 (2) -> 1101 1011
3) 2의 보수를 취해 체크섬을 만듭니다.
기존 : 1101 1011
1의 보수 : 0010 0100
2의 보수 : 0010 0101
체크섬 : 0010 0101 = 0x25
수신부
1) 모든 byte 데이터와 체크섬을 더합니다.
0x1DB + 0x25 = 0x200
2) 캐리니블을 버립니다.
0x200 = 0010 0000 0000 (2) -> 0000 0000
3) 0x00이 나왔기 때문에 오류가 발생하지 않은 것으로 판단합니다.
4. 해밍코드(Hamming Code)
하나의 데이터 단위에 대해 충분한 패리티 비트를 추가해 오류를 검출하고, 수정까지 할 수 있는 방식입니다.
송신부
1) 아래 부등식을 만족하는 최소 p를 구합니다(p : 추가할 패리티 비트 수, n : 데이터의 비트 수).
2^p >= p + n + 1
2) 2^(k-1) 번째 자리마다 자신의 범위에 대한 Even/Odd Parity를 가지는 패리티 비트를 추가합니다.
수신부
1) 패리티 비트마다 유효성 검사를 실행합니다.
2) p1부터 패리티 비트에 오류가 없으면 0, 있으면 1을 기록합니다.
3) 기록된 것을 10진수로 변환한 수가 오류가 발생된 자리수를 나타냅니다.
ex)
1010 데이터가 들어왔다고 가정합니다.
1) 2^p >= p + 4 + 1 -> p >= 3
7 6 5 4 3 2 1
2) 0 1 0 ㅁ 1 ㅁ ㅁ -> 0 1 0 1 1 0 1 (Even Parity)
7, 6, 5번째 자리 + 4번째 자리(패리티 비트) = 0 -> p3 패리티 비트 = 1
7, 6, 3번째 자리 + 2번째 자리(패리티 비트) = 0 -> p2 패리티 비트 = 0
7, 5, 3번째 자리 + 1번째 자리(패리티 비트) = 0 -> p1 패리티 비트 = 1
Even Parity이기 때문에 Modulo-2 연산에 의해 0이 나와야 합니다.
따라서 해밍코드는 0101101가 됩니다.
만약, 수신부에서 1101101이 수신됐다면,
7 6 5 4 3 2 1
1 1 0 1 1 0 1 -> 1
p1(1, 3, 5, 7번째 자리 중 오류 -> 1을 기록)
7 6 5 4 3 2 1
1 1 0 1 1 0 1 -> 1
p2(2, 3, 6, 7번째 자리 중 오류 -> 1을 기록)
7 6 5 4 3 2 1
1 1 0 1 1 0 1 -> 1
p3(4, 5, 6, 7번째 자리 중 오류 -> 1을 기록)
111 (2)가 기록되었고, 111 (2) = 7, 즉 7번째 자리에서 오류가 난 것을 알 수 있습니다.
http://www.jidum.com/jidums/view.do?jidumId=456
출처: https://noil0816.tistory.com/39 [혼자공부하기]
'전공 > 네트워크' 카테고리의 다른 글
[스터디 4일차] 3 way handshake와 4 way handshake / OSI 7 계층 (0) | 2021.11.13 |
---|