- Message : sw가 주고받는 정보
- Sender : Message를 전달하는 device
- Receiver : Message를 받는 device
- Protocol : 약속
-> L2
- Controlled-access : sw느낌
- Channelization : hw
- Random access : 가장 많이 쓰임
= 초고속 인터넷
ex) 이더넷
- 유선에서 많이 쓰인다
- 전자식 신호를 읽어서 여러명이 통신할 때(multiple access) 문제를 해결
- 둘이 동시에 통신하는 것(이러면 충돌)을 detect하기 위해서 carrier를 지켜보고 있겠다.
- 줄 하나를 계속 보면서 두명 이상이 동시에 데이터를 쏴서 통신 못하는 것을 감지
- 충돌을 줄이겠다!
A가 C에게 쏜 신호가 도착하기 전에 C가 D에게 쏴버림 (통상적인 충돌 발생 이유)
-> collision detection -> C가 중단
누가 악의적으로 계속 신호를 쏘면 통신 불가 상태가 된다
요즘은 광케이블은 너무 빨라서 의미가 없다. 케이블도 싸져서 굳이 한줄에 두개 이상 컴퓨터를 연결하지 않게 되면서 충돌이 줄어들었다. CSMA/CD는 전통적인 개념일 뿐 사실 거의 안쓰임
HTTP3에서는 TCP대신 UDP를 http 밑에 넣는다. 물리적 충돌 확률이 굉장히 작아졌기 때문
- K : 시도 횟수
- 다 쏘기 전까지 문제가 생기면 다시 보내기
- 다 쐈는데 error가 detect : jamming signal을 보냄. 이상한 신호를 쏴서 확실히 에러를 냄 / 재전송이 max가 된 경우 그만. 버림 / L1,L2의 기본 철학 : 안되면 버리자. 신뢰가 필요하면 위에서 보강을 해야 함.
- 다 쏘고 error도 안남 : 끝
= 무선에서 많이 쓰인다
- Collision Avoid
- 무선일 경우 CD를 적용하기는 힘들다
- RTS CTS를 보내서 에러를 최소화
- 정보고 보내고 싶은 A : B에게 RTS 보냄. 나 보내고 싶어!
- B가 통신 가능할 때 : CTS 사방에 보냄. 나 이제 A랑 통신할거임.
- C,D : ㅇㅋ 입 다물게 -> 충돌 회피
- ACK : 잘 받았어. 무선으로 뿜어냄. 다른 애들한테도 말해줌 -> C,D 다시 합류
B가 보낸 걸 A는 받을 수 있지만 C는 X
C가 멀리 있거나 주파수가 간당하거나 이동할 경우 문제가 생길 수 있음
CTS,ACK 못들은 애가 관여하려고 하면 문제가 생김
무선 or 블루투스는 많은 사람이 쓸 수록 성능이 떨어지다가 0가 됨.
ex) 웹파 200명 강의실에서 웹서핑
-> How : 무선랜에서 무선 주파수를 만들어요
무선 주파수를 360도로 쪼갭니다. 안테나를 360도 쪼개서 바라보게 함
왼쪽 문쪽 : 왼쪽 바라보는 AP가~ 이런식으로 나눠서 담당
-> 많이 쪼개질수록 비쌈
무선랜 장비는 무차별 적으로 배포하면 AP 간 간섭을 일으켜서 성능을 반으로 떨궈요
유무선 공유기 가까이 두개 설치하면 하나끄세요. 바보
거리문제는 다른 방식으로 해결해야해요
네트워크의 근본 철학 : BEST EFFORT
=> 에러날 때 할때까지 해보고 안되면 포기
모든 통신은 유선이든 무선이든 손실이 발생한다. ex 날씨
사용자가 많으면 당연히 충돌 발생 -> 속도 저하 & 지연 발생
결론 : 서비스 보장을 위해서는 L1/L2에 대한 이해가 필요하다
시험에 낼 수도 있어여~
위로부터 받은 PDU에 정보를 넣음(보내는 사람 IP Add, 목적지 IP Add -> 원칙적으로는 바뀌지 않고 상대에게 전달)
example) 인터넷 - IP 사용
- R1에 1번 packet이 도착하면 라우터가 목적지 주소를 확인해서 어느 줄로 보낼지 판단.
- packet마다 결정.
- packet마다 경로가 달라서 순서가 섞일 수 있다 = IP Network 특징
- TCP : 순서를 맞춰준다 / UDP : 순서 무시-> 순서 맞춰야되는지 고려해서 TCP/UDP 결정
TCP
- 에러검출 & 복구
- Reordering(3계층에서 뒤섞인 순서를 다시 정렬)
현재 KT, ST에서 메세지 순서가 바뀔 확률 0.000000000000001%
IP : 인터넷 기반 동작
IP의 가장 중요한 기능 : 내 컴퓨터의 줄에 IP주소를 주는 것
32bit를 다시 둘로 나눈다
라우터 = 길을 결정
인터넷에서 destination IP주소를 보고 Table과 비교를 통해 길을 찾는다
Header = 20-60 byte
현재 모든 통신 프로토콜은 비트단위 계산
= 컴퓨터를 식별하는 주소
사실 장비를 식별하는 게 아님. 유선 줄이 꽂히는 장치를 컴퓨터라고 보통 생각하는데, 사실 서버 컴퓨터는 보통 선이 여러개 연결됨. 근데 IP주소는 줄마다 하나씩 할당되기 때문에, 엄밀히 말하면 컴퓨터를 식별하는 것은 아님. 근데 걍 컴퓨터라 생각하세요~ 서버쪽 갈 거 아니면.
Network 프로그램을 짤 때는 Virtual IP Address를 사용하는 경우도 있다.
Domain Name = URL
IP Address를 1대1로 매핑
ex) khu.ac.kr은 코리아의 아카데믹의 경희대
= Domain Name System
도메인 이름을 받으면 IP Address를 찾음
디도스는 해킹이에요? ㄴㄴ . 원래 행위를 못하도록 한 것
원래 통신에서 보안이라는 건 정상적 행위를 방해하는 것. 소프트웨어를 만들 때 발견하지 못한 버그들.
= Dynamic Host Configuration Protocol
Network Layer는 컴퓨터를 Host라 부른다.
Public IP
인터넷에서 어디서나 접속할 수 잇는 고퀄 IP 주소
Private IP
집 내부 컴퓨터들 끼리의 통신에 사용하는 IP 주소
밖으로 나가면 의미가 X
Public IP 주소는 한정되어있기 때문에 전세계 컴퓨터에 ipv4 주소를 줄 수 없다.
IP주소가 부족해서 뻥튀기 하는 방법을 만듦 = Private + NAT/PAT
NAT / PAT
= Private 과 Public을 왔다갔다할 때 쓰는 것
Private 영역에서 인터넷에 접속하려고 하면 밖으로 내보내야 한다. 그 경우 destination IP Add는 건들지 않고 Source IP를 KT가 가지고 있는 Public IP Add로 바꿔준다. -> 100기가가 날아오면 실시간으로 모든 소스 아이디를 퍼블릭으로 바꿔야 한다.