데이터 전송기술
Baud(보) : 변조속도
- 아날로그 단위로 1초 동안에 전송된 주기의 수를 의미함
- BPS = Baud x 주기(cycle) 당 전송 비트수
- ex. 80baud 변조속도일때 1분동안 전송할수 있는 full word수는? (변조방식은 2위상 편이 변조)
- 2위상 편이 변조 = 1비트, 4위상 = 2비트, 8위상 = 3비트
- 1baud = 1bps로 동일해짐
- 80bps x 60초 = 4800비트
- full word = 32bit
- 4800bit / 32bit = 150 따라서 정답은 150
데이터 전송 방식
단방향 통신(Simplex)
- 한방향으로만 전송가능
- 무선 호출기, 라디오, 모니터, 키보드, 아날로그 TV방송
반이중 통신(Half Duplex)
- 양방향 통신 가능하지만 동시엔 불가능
- 휴대용 무전기
전이중 통신(Full Duplex)
- 동시에 데이터 송수신하는 통신 양방향 가능
- 전화
전송 방식
직렬 전송
- 하나의 전송로를 통해 순차적으로 송신
- 속도 느림
- 원거리 전송에서 사용
병렬 전송
- 한 문자를 이루는 각 비트들이 각자의 전송로를 통해 한번에 전송
- 비용이 비싸지만 빠름
- 근거리 전송에서 사용
비동기식 전송(asynchronous transmission)
- 동기식 전송을 하지않는다는 의미는 아님
- 블록 단위가 아닌 문자 단위로 동기정보를 부여해 보내는 방식
- 전송 되는 각 문자는 앞쪽에 1개의 시작비트, 뒤쪽에 1~2개의 정지비트 시작(0) 정지(1)
- 문자 단위로 동기로 이뤄지지만 항상 동기상태아니여도 되서 비동기식 전송이라함
동기식 전송
- 데이터 앞에 동기문자 추가
- 블록으로 구성되는 문자들 사이에는 휴지간격이없음(비동기식은 휴지간격있음)
- 데이터 많거나 고속처리에는 비동기식보다 효율적임
정보 전송의 다중화
다중화 기법
- 데이터 전송시 각 채널들은 하나의 회선을 공유하므로 회선을 통과하는 데이터들을 구별하기 위한 기준이 있어야함
- 분류
- 주파수 분할 다중방식
- 시분할 다중방식
- 코드분할 다중방식
주파수 분할 다중화(FDM; Frequency Division Multiplexing)
- 하나의 전송로 대역폭을 작은 대역폭, 채널 여러개로 분할해 여러 단말기가 동시에 전송 가능
- 같은 시간 전송을 위해 별도의 주파수 채널을 설정해야함
- 채널 간섭을 막는 보호 대역 필요
- TV, 라디오, CATV등에 이용
- 구조 간단, 가격 저렴
시분할 다중화(TDM; Time Division Multiplexing)
- 대역폭 하나를 시간 슬롯으로 나눈 채널에 할당해 채널 몇개가 한 전송로의 시간을 나눠 사용
동기식 시분할 다중화(STDM)
- 채널 여러개가 전송로 1개의 시간을 분할하여 사용
- 각 터미널에 타임슬롯 위치가 항상 일정해 전송 없을 경우 타임슬롯 낭비됨
비동기 시분할 다중화(ATDM)
- 실제로 전송 요구 있는 채널만 시간 슬롯을 동적으로 할당
- 대역폭의 이용률 높음
- 데이터 내에 터미널 주소가 필요
코드분할 다중화(CDMA;Code Division Multiplex Access)
- FDM + TDM 혼합방식, 동일한 주파수 시간을 이용해 다중화하는 방식
- 대역확산 기법을 사용
- 압축과 에러 복구에 용이, 무선 디지털 전송방식에서 많이 이용
- 큰 전송용량 확보, 멀티미디어 서비스 가능
- 비밀보장가능
- 간섭의 최소화로 회선품질이 양호
- 정밀한 전력제어 기능이 요구됨
- 높은 하드웨어 기술이 필요함
OSI 참조 모델
물리 계층(Physical Layer)
- 데이터 전달의 역할
- 데이터는 0과 1 비트로 전기적 신호 상태로 이뤄져 데이터를 전달
데이터링크 계층(Data Link Layer)
- 이웃한 노드간의 데이터 전송을 담당
- 데이터 단위를 일반적으로
프레임
이라함 - 접근제어, 흐름제어, 에러제어, 동기화의 기능이 있음
- 프로토콜로는 BSC와 HDLC가 있음
BSC(Binary Synchronous Communication)
- 문자 단위로 전송하는 문자 지향 동기 방식
- 반이중 방식
- 일정한 전송 제어문자를 사용
HDLC(High-level Data Link Control)
- 비트 단위로 전송하는 비트 지향 동기 방식
- 전이중 방식
- 고속 전송, 신뢰성이 높음
- Flag(8비트로 동기화에 사용), Address(8비트로 전송할 목적지 주소), Control(8or16비트로 프레임별 기능 다름), Data(가변길이,실제 데이터), FCS(16or32비트로 에러 검출에 사용),Flag
흐름제어
- 처리속도가 다를때 조절하는 기능
- 정재 대기 방식 : 송신측에서 한번에 프레임 1개, 수신측에선 결과를 송신측에 전송
- 슬라이딩 윈도우 방식 : 송신측에서 윈도 크기만큼 프레임을 연속으로 전송
에러제어
패리티 비트검사(parity bit check) 에러 검출 방식
- 비동기 전송에서 사용
- 짝수 패리티, 홀수 패리티 방식이 있음
- 해당 패리티를 맞추기 위해 패리티 비트로 0이나 1을 전송함
- 짝수개의 오류가 동시에 발생 하면 감지 못함
블록 합 검사(block sum check) 에러 검출 방식
- 패리티 검사 단점 보완으로 2차원적 에러 검출방식
- 각 문자 블록에 수평 패리티(짝수), 수직패리티(홀수) 적용
- 짝수개 에러 검출 가능
프레임의 마지막 문자는 블록 합 검사가 된다.(사실 봐도 잘모르겠음 문제 나오면)
에러 정정 방식 - 자동 재전송 요청(ARQ;Auto Repeat reQuest) 방식
정지 대기 ARQ 방식
- 흐름 제어에서 설명함
- 송신측이 블록 하나 전송 -> 수신측이 에러 검사후 ACK나 NAK를 보낼 때까지 기다림
- NAK보내면 다시 블록 보냄
Go-Back N ARQ 방식
- 송신측에서 프레임 연속해 송신하고 수신측에서 에러 발생시 송신측에 NAK와 에러프레임번호 알림
- 송신측이 NAK와 에러프레임번호 확인후, 해당 프레임부터 나머지까지 계속 송신
- 만약 5번 프레임까지 보냈는데 3번 에러나면 3,4,5 다시 보냄 3개 다시 보낸단 소리
선택적 ARQ 방식
- 에러가 발생한 프레임만 다시 전송
적응형 ARQ 방식
- 블록 크기를 동적으로 해 에러 발생률 높으면 짧은 프레임, 적으면 긴 프레임 전송
네트워크 계층(Network Layer)
- 패킷 단위로 전송
- 가장 좋은 경로 선택하는 라우팅을 수행함
- 논리 주소인 IP 주소를 헤더에 포함해 송신지부터 수신지까지 주소가 변경x
물리주소(MAC주소)는 패킷이 이동될 때마다 변경되지만
논리주소(IP주소)는 변함없이 유지됨
라우터는 그러한 논리주소를 기반으로 연결하는 기능을 제공
경로설정 프로토콜
RIP(Routing Information Protocol)
- 라우터의 대수(hop의 수량)에 따라 최단 경로를 동적으로 결정하는 거리 벡터 알고리즘(벨만-포드) 사용
- 간단히 구현되며 분산된 환경에서 동작 가능
- 일반 기업의 구내 정보 통신망(LAN)에 주로 이용
- 소규모 네트워크에 효과적
- 대신 최대 15홉이며
- 최적 상태 수렴하는데 시간이 오래걸릴 수 있음
OSPF(Open Shortest Path First, OSPF)
- 링크 상태 라우팅 알고리즘(다익스트라) 사용
- RIP의 단점을 해결
- 대기업망에서 널리 쓰이는 내부 게이트웨이 프로토콜(IGP)로 간주됨
- 대신 비싸서 아직 RIP많이 사용함
BGP(Border Gateway Protocla)
- 외부 게이트웨이 프로토콜(EGP)로 간주
- 자율 시스템의 네트워크 내에서 호스트끼리 라우팅 정보 교환을 위한 프로토콜
전송 계층(Transport Layer)
- 전송계층을 기점으로 하위계층(물,데,네)로 이뤄진 네트워크 계층과
- 상위계층(세,표,응)으로 이루어진 사용자 서비스로 구별할 수 있음
- 이 두 서비스간의 종단간 전송을 수행하는 역할을 담당
- 프로토콜(TCP,UDP)와 관련된 계층으로 에러 복구, 흐름 제어등을 담당
- 두 시스템 간의 신뢰성 있는 데이터 전송을 보장
이후 파트에서 전송계층의 프로토콜인 TCP와 UDP를 설명하도록 하겠다(밑에있음)
세션 계층(Session Layer)
- 세션 관리
- 복구를 위한 동기점 제공
- 대화제어
표현 계층(Presentation Layer)
- 코드 변환
- 암호화, 보안
- 압축
응용 계층(Application Layer)
- 네트워크 가상 터미널
- 파일접근, 전송 및 관리
- 이메일 서비스
인터넷 계층과 TCP UDP
인터넷의 기본이 되는 프로토콜
전송 제어 프로토콜(TCP; Transmission Control Protocol)과
인터넷 프로토콜(IP; Internet Protocol)을 의미
네트워크 접근 계층
- 하드웨어적인 요소와 관련된 모든것을 지원하는 계층
- 송신기 단말기는 인터넷 계층으로 전달받은 패킷에 물리적 주소인 MAC 주소 정보를 갖는 헤더를 추가하여 프레임을 만들어 전달함
- 대표 프로토콜 : 이더넷, 802.1x, MAC/LLC, SLIP,PPP
네트워크 접근 계층 대표 프로토콜
- 이더넷 : 근거리통신망(LAN)의 대표 통신 프로토콜
- MAC/LLC : IEEE 802를 표준으로 규정하는 각정 연결방식에서 공통으로 사용하는 통신 규약
- SLIP(Serial Line Internet Protocol) : IP에 대한 기본 프레임을 제공하는 간단한 2계층 프로토콜
- PPP(Point-To-Point Protocol) : 프레임, 보안, 성능을 강화하기 위한 추가기능을 제공하는 프로토콜
인터넷 계층
- IP는 네트워크의 주소 체계를 관리하며, 데이터그램을 정의, 전송을 위한 경로 결정을 담당
- 대표 프로토콜 : IP, ARP, RARP, ICMP, IGMP
인터넷 계층 대표 프로토콜
- IP : 네트워크의 주소 체계를 관리하며, 데이터그램을 정의, 전송을 위한 경로 결정을 담당
- ARP(Address Resolution Protoocl) : IP주소 -> MAC 주소 변환
- RARP(Reverse ARP) : MAC주소 -> IP주소 변환
- ICMP(Internet Control Message Protocol) : 에러 보고, 경로 제어하는 정보 전달 기능
- IGMP(Internet Group Message Protocol) : 멀티캐스팅 기능
전송 계층
- 신뢰성있는 전송 기능 제공
- 시스템의 논리 주소와 포트를 가지므로 각 상위 계층의 프로세스를 연결
- 대표 프로토콜 : TCP, UDP
TCP
연결 지향형 프로토콜
- 데이터 전송전 송수신을 위한 연결 통로를 만들고 전송
- 송신전 수신측 연결상태 확인후 전송 시작, 통신 종료때까지 연결 상태 유지
3-way-handshaking
- TCP는 송신측과 수신측 연결을 위해 신호를 3단계로 교환함
-
- 송신측 -> 수신측 SYN 세그먼트를 보내 연결 설정 요청
-
- 수신측 -> 송신측 수신 확인으로 SYN 세그먼트와 ack를 전송
-
- 송신측 -> 수신측 응답 세그먼트의 확인 응답으로 ack 전송
- 여기서 SYN 세그먼트 보내는 단계를 악용한게 SYN Flooding 공격
4-way-handshaking
- TCP는 송신측과 수신측 연결을 해제하기 위해 신호를 4단계로 교환함
- 송->수 FIN 세그먼트 보내 연결 해제 요청
- 수->송 확인 ack세그먼트 전송
- 수->송 FIN 세그먼트 전송해 연결 해제 요청
- 송->수 응답 ack를 보냄
포트 번호
까지는 시험이나 어디에도 잘 안나올듯하다 굳이 외우기보단 필요할때마다 볼 느낌?
나중에 TCP 헤더와 UDP헤더 차이나 보도록 하자
TCP 흐름제어
- 수신측은 정상 도착 여부를 송신측에게 알림
- 에러난 패킷은 재전송
- 슬라이딩 윈도우 방식 사용
- 윈도우 크기 : 한번에 전송되는 패킷의 개수, 수신 버퍼의 크기
혼잡제어
- 네트워크 내에서 패킷수가 과도하게 증가하는 현상을 혼잡이라함
- TCP에서는 혼잡 제어로 Slow-Start 알고리즘 사용
- Slow Start 알고리즘 : 1개 2개 4개 8개 16개.. 씩으로 크기 늘리다가 재전송 발생시 다시 한계치를 반으로 줄이고 한개의 패킷을 송신
UDP
- 비연결 지향 프로토콜
- 패킷, 흐름제어, 단편화 및 전송보장등의 기능 제공 X
- TCP 헤더에 비해 간단, 상대적으로 통신 과부화 적음
- 대표 응용 계층 프로토콜 : DNS, DHCP, SNMP
TCP 헤더 vs UDP 헤더
checksum(검사합)
수신측에서 이 정보를 이용해 UDP 헤더와 데이터 및 IP헤더의 에러검사
UDP 표준에서는 검사합이 선택사항
응용 계층
- 사용자에게 서비스 제공
- 대표 프로토콜 : FTP(file transfer protocol), SMTP(simple mail transfer protocol), SNMP(simple network management protocol)
응용 계층 대표 프로토콜
- FTP : 파일 전송 프로토콜
- TFTP : FTP보다 단순한 방식으로 파일 전송, 임베디드 시스템에서 운영체제 업로드용
- RTP(Real-Time Transport protocol) : 실시간 음성 동화를 송수신하기 위한 통신 규약, 보통 UDP의 상위 통신 규약으로 이용
- HTTP : 인터넷에서 하이퍼텍스트 문서 교환에 사용하는 통신 규약, 웹에서 HTML 문서 송수신에 사용 다양한 형태의 데이터 전송 가능
- SMTP : 두 메일 서버 사이에서 이메일 송신~
- POP3 : 이메일 수신~
- SNMP : 다른 네트워크 장치를 원격에서 관리 하기위한~
- DHCP(Dynamic Host Configuration P) : 네트워크의 각 노드들에게 유일한 IP주소 자동으로 할당, 관리해주는 서비스
- DNS(Domain name system) : 호스트 이름과 IP주소를 매핑해 주는 분산 네이밍 시스템
IP
IPv4 주소 체계
클래스와 서브넷카스크가 어려운 시험에선 꼭 나오더라
알아두면 하나 꽁으로 먹고 가니 알아두고 가자
A 클래스
- IP 주소 처음 바이트 시작은 ‘0’
- 0.0.0.0~127.255.255.255의 주소 범위
- 기본 네트워크 마스크는 255.0.0.0
- host 대역이 24bit라서
- 네트워크 ID 한개당 최대 2^24개의 호스트 주소를 가짐
- 네트워크 ID 한개당 최대 2^24 - 2개의 호스트를 포함 가능
B 클래스
- IP 주소 처음 바이트 시작 2비트가 ‘10’
- 128.0.0.0~191.255.255.255의 주소 범위
- 기본 네트워크 마스크는 255.255.0.0
- host 대역이 16bit라서
- 네트워크 ID 한개당 최대 2^16개의 호스트 주소를 가짐
- 네트워크 ID 한개당 최대 2^16 - 2개의 호스트를 포함 가능
C 클래스
- IP 주소 처음 바이트 시작 2비트가 ‘110’
- 192.0.0.0~223.255.255.255의 주소 범위
- 기본 네트워크 마스크는 255.255.255.0
- host 대역이 8bit라서
- 네트워크 ID 한개당 최대 2^8개의 호스트 주소를 가짐
- 네트워크 ID 한개당 최대 2^8 - 2개의 호스트를 포함 가능
D 클래스
- IP 주소의 시작은 224~239, 멀티캐스트 용도로 사용
서브네팅
- 네트워크 성능 향상을 위해 한정된 자원을 효율적으로 분배
- 네트워크를 쪼개서 통신 성능 보장
- IP는 한정적이라 서브넷마스크를 이용해 필요한 네트워크 주소만 호스트 IP로 할당 할 수 있게 만들어 낭비를 방지
서브넷 마스크
IP 주소의 네트워크 주소, 호스트 주소를 더 명확히 나누는 방법
2진수 32개로 구성되어 구조는 IP 주소와 동일
가장 첫주소는 네트워크 ID, 마지막 주소는 브로드 캐스트 이므로 사용불가
서브넷 마스크 예시
서브넷 마스크 255.255.255.0이다
- 호스트 주소는 0~255중 첫주소와 마지막 주소 뺀 1~254 할당 받음
- 253개의 호스트가 동일한 네트워크 이용 가능
서브넷 마스크 255.255.255.128이다
- 네트워크 개수는 2개
- 호스트 주소는 0~127,128~255 대역받고, 첫주소와 마지막 주소 뺀 1~126,129~254 할당 받음
- 125개의 호스트가 각각 다른 네트워크를 사용하게 됨
서브넷 마스크 255.255.255.192이다
- 네트워크 개수는 4개
- 호스트 주소는 0~63,64~127,128~191,192~255 대역
- 첫주소 마지막 주소뺀 1~62,65~126,129~190,193~254 할당
- 61개의 호스트가 각각 다른 네트워크를 사용하게 됨
CIDR(Classless Inter-Domain Routing)
클래스 없이 라우팅 하는 기법 10진수 뒤에 슬래쉬(/) 뒤로 0~32까지 수로 구성
CIRD 예시
192.168.20.2/28
- 슬래시 뒷 숫자는 서브넷 마스크의 1의 개수를 의미
- /28은 서브넷 마스크 11111111.11111111.11111111.11110000
- 10진수로 바꾸면 255.255.255.240을 의미
- 네트워크 개수를 16개로 나눴으니 네트워크 1개당 호스트 주소범위는
- 192.168.20.0~192.168.20.15
- 192.168.20.16~192.168.20.31
- ~~~~~~~ 192.168.20.240~192.168.20.255 로 16개로 나뉨
IPv6
- 128 비트의 길이를 가짐
- 옵션이 기본 헤더로 분리되고 필요할때 확장 헤더를 삽입
- IPv4보다 라우팅이 더빠름
- 내가 보기엔 모든면에서 우월함 하지만 IPv4가 너무 대중화됨 언젠간 바뀔듯
IPv6 주소
- 4개의 16진수 단위 8개 사용
IPv6 예시
- ABCD:BC34:0004:2350:AAFF:0000:1234:4503
IPv4 vs IPv6
특징 비교
헤더차이
회선교환 vs 패킷교환
일단 훑어보자 시험에 나올만한게 없어보여서
비교로 대체하는데 한번이라도 나오면 다시 제대로 알아보도록 하자