- 특징: 32비트로 구성, 2^32개(4,294,967,296개) 약42억개, 십진수로 표기
2. 서브넷 마스크
- 서브넷 마스크는 IP고갈을 막기 위해 도입 되었다.
- 공통비트: 1비트 -> 네트워크 아이디 -> 네트워크를 구분하기위한 번호
- 비공통비트: 0비트 -> 호스트 아이디 -> IP주소 개수 및 범위를 표기하기위한 번호
예를 들어 10.10.10.10 이란 IP 그리고 255.0.0.0 이란 서브넷 마스크를 사용할때
네트워크 아이디는 10.0.0.0 이고 호스트 아이피 갯수는 10.x.x.x 여기서 x에 해당되는 부분을 말한다. 호스트 갯수는 x에 해당되는 부분
2^24개가 되겠다.
3. IP클래스
1. IP 주소 범위: 0.0.0.0 ~ 255.255.255.255 약 42억개
2. 네트워크와 호스트부분을 구분하고 효율적으로 IP를 관리하기위해서 만들었다.
3 . A, B, C, D, E 클래스의 범위
A Class : 0 ~ 127 (0.0.0.0 ~ 127.255.255.255)
B Class : 128 ~ 191 (128.0.0.0 ~ 191.255.255.255)
C Class : 192 ~ 223 (192.0.0.0 ~ 223.255.255.255)
D Class : 224 ~ 239 (224.0.0.0 ~ 239.255.255.255)
E Class : 240 ~ 255 (240.0.0.0. ~ 255.255.255.255
4. 클래스는 유니캐스트주소, 멀티캐스트 주소, IANA 예약용 주소로 나눌수 있다.
@ 유니케스트 주소
- 유니케스트 전송때 사용하는 주소이며, 장치에 설정하는 주소이다.
A Class(0~127) : 맨 앞에 비트가 '0'인 공통 비트 클래스
0.0.0.0 ~ 127.255.255.255 기본 서브넷 마스크 : 255.0.0.0 0 0000000. 0 1111111. 네트워크 아이디당 IP 주소 개수 : 2^24개 (16,777,216개) B Class(128~191) : 맨 앞에 비트가 '10'인 공통 비트 클래스
128.0.0.0 ~ 191.255.255.255 기본 서브넷 마스크 : 255.255.0.0 10 000000. 10 111111. 네트워크 아이디당 IP 주소 개수 : 2^16개 (65,536개) C Class(192~223) : 맨 앞에 비트가 '110'인 공통 비트 클래스
192.0.0.0 ~ 223.255.255.255 기본 서브넷 마스크 : 255.255.255.0 110 00000. 110 11111. 네트워크 아이디당 IP 주소 개수 : 2^8개 (256개) ---------------------------------------------------------------------------------- 2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0 128 64 32 16 8 4 2 1 ----------------------------------------------------------------------------------
@ 멀티케스트 주소
- 멀티케스트 전송때 사용하는 주소이며, 장치에 설정이 안되는 주소이다. - 서버가 패켓을 멀티케스트로 전송할 경우, 목적지 IP 주소로 설정된다.
D Class(224~239) : 맨 앞에 비트가 '1110'인 공통 비트 클래스
224.0.0.0 ~ 239.255.255.255 서브넷 마스크 개념 X 1110 0000 1110 1111.
@ 3. IANA 예비용 예약 주소
- 예비용으로 예약되었기 때문에 사용 및 설정이 안된다.
E Class(239~255)
240.0.0.0 ~ 255.255.255.255
5. 네트워크 이름 & 서브넷브로캐스트 주소
1) 네트워크 이름:
- IP 주소가 할당된 네트워크를 대표하는 IP주소
- 할당된 아이피 주소의 첫번째 주소가 네트워크 아이디 주소
2) 서브넷 브로드캐스트 주소:
- 해당 네트워크에서 브로드케스트를 실행할때 사용되는 주소.
- 호스트 아이피의 마지막 주소가 브로드캐스트 주소이다.
IP 서브넷마스크
192.168.1.10 255.2555.255.0 이라 할때,
네트워크 이름 192.168.10.0 브로드캐스트주소 192.168.1.255
6. 서브넷마스크 Prefix 설정 가능한 IP 주소 개수
7. 공인 IP 주소 & 사설 IP 주소
1) 공인 IP 주소 (Public IP 주소)
- ISP 업체에서 할당한 인터넷이 가능한 주소 - 공인 IP 네트워크 정보는 ISP 업체 라우터 장비에 등록 O
2) 사설 IP 주소 (Private IP 주소)
- ISP 업체 임대와 관계 없이 내부용으로 사용하는 주소 - 사설 IP 네트워크 정보는 ISP 업체 라우터 장비에 등록 X
A Class 10.0.0.0 ~ 10.255.255.255 B Class 172.16.0.0 ~ 172.31.255.255 C Class 192.168.0.0 ~ 192.168.255.255
@ IP 주소 사용 주의 사항
1. 중복 X 2. 미할당 IP 주소는 다른 네트워크에 할당하면 안된다. (이유 : 네트워크 이름 중복)
파이썬으로 뭘 만들어 볼까 유튜브 검색중에 학교과제에서 했었던 영상들이 꽤 많다는 것을 봤다.
학교 다니때는 왜 유튜브를 찾아보지 않았을까라는 후회가 될정도로 많았다....
어찌됐든 기억을 더듬이며 하나씩 해보면 재미있지 않을가 해서 해본다.
첫번째는 Guess the number로 정했다.
lecture 끝나고 workshop 시간에 했었던 걸로 기억한다. 그때는 이거 하나 만들기도 벅차서 중국애랑 일본애랑 셋이서 머릴 맞대고 만들었던 기억이 ㅋㅋㅋㅋ
이게 효율적인 코드인지는 모르겠지만 일단 5분도 안걸림;;
import random #랜덤숫자 생성을 위해 모듈 불러옴
num = random.randint(0, 50)#0~50 사이의 숫자하나를 생성 후 변수 저장
print(num) # 테스트를 해보기위해 생성된 변수를 프린트 해봤다
input_num = int(input("숫자를 입력 해주세요:\n"))# 입력값을 받고 input값이 str이기때문에 int로 변경
for i in range(5): # 반복문 5번만 하겠다
if input_num < num: #나머지는 if 문
print("입력하신 숫자보다는 큽니다.")
input_num = int(input("숫자를 입력 해주세요:\n"))
elif input_num > num:
print("입력하신 숫자보다는 작습니다.")
input_num = int(input("숫자를 입력 해주세요:\n"))
elif input_num == num:
print("성공하셨습니다. 숫자는 %d입니다." % num)
elif i == 5:
print("입력횟수를 초과 하셨습니다.")
13
숫자를 입력 해주세요:
1
입력하신 숫자보다는 큽니다.
숫자를 입력 해주세요:
2
입력하신 숫자보다는 큽니다.
숫자를 입력 해주세요:
66
입력하신 숫자보다는 작습니다.
숫자를 입력 해주세요:
14
입력하신 숫자보다는 작습니다.
숫자를 입력 해주세요:
13
성공하셨습니다. 숫자는 13입니다.
- Layer 4 계층 프로토콜 - 연결 지향성 프로토콜 : 상대방과 통신 수립 연결을 실시하고 난 이후, 데이터 요청 및 응답 실시 - '3-Way 핸드 쉐이킹' 동작 실시
A(클라이언트) B(서버)
Syn -> <- Syn, Ack Ack -> ~ 통신 수립 완료 ~ (ESTABLISHED)
데이터/서비스 요청 -> <- 데이터/서비스 응답
[참고] TCP Control Flag (6bit)
- urg (1.....) : 긴급한 데이터 표기 - ack (.1....) : 확인 응답/승인 - psh (..1...) : 수신처리 이후, 상위 프로세스로 처리 - rst (...1..) : 강제 종료 - syn (....1.) : 통신 개시 - fin (.....1) : 정상적인 종료
- 데이터 스트림 서비스 : 데이터를 세그먼트 단위로 생성하여 전송 및 수신 처리 실시 (순서 번호 및 확인 번호 사용)
- 흐름 제어 기능 : stop & wait 기법 -> 슬라이딩 윈도우 기법
stop & wait : 송신한 세그먼트에 대한 Ack를 수신해야지만, 그 다음 세그먼트 전송 (다음 세그먼트 송신 처리 지연 발생 및 Ack 양 많음)
슬라이딩 윈도우 : 수신측 세그먼트 처리양에 맞게 송신측에서 세그먼트 다수 전송 (세그먼트 송신 지연 발생 및 Ack 양 최소함)
- 혼잡 제어 기능 : 혼잡 발생시 전송률을 최소화하는 기능
- 오류 검사 : 수신한 세그먼트 손상 여부 판단 (손상된 세그먼트는 드랍 처리 실시)
- 재전송 기능 : 송신한 세그먼트에 대한 Ack를 수신하지 못하면, 해당 세그먼트를 재전송 실시
- Layer 3 계층 프로토콜 - 비연결 지향성 프로토콜 - 로컬 환경에서 리모트 환경으로 데이터 전송 담당 - TTL(Time to Live) : 8bit(0~255), 거리 측정 및 패켓 루프 방지 기능
[참고] 운영 체제 TTL 기본값
- Cisco 255 - Window 128 - Linux 64 이 값이 1씩 줄어들때 마다 하나의 라우터를 거친다
윈도우에서 ttl 값이 126 이면 두개의 라우터를 거쳤다는 뜻이다.
한국에서 유럽까지 연결해도 20개 정도만 거친다고 한다.
궁금하면 유럽에 서버를 두고 있는 웹사이트로 핑 해보면 된다.
4. ICMP(Internet Control Message Protocol)
- IP 프로토콜을 이용한 데이터 전송 여부 가능 테스트 프로토콜 - 'ping', 'tracert' 명령어
A B 192.168.14.14 -------> 192.168.14.11
ping 192.168.14.11
ICMP Echo-Request -> <- ICMP Echo-Reply SA 192.168.14.14 SA 192.168.14.11 DA 192.168.14.11 DA 192.168.14.14
5. ARP(Address Resolution Protocol)
- 주소 변환 프로토콜 - 목적지 IP 주소에 대한 MAC 주소를 설정하는 프로토콜 - 만약, 목적지 IP 주소에 대한 MAC 주소가 없을 경우, 다음과 같이 ARP 요청 및 응답 실시
A B 192.168.14.11 192.168.14.14 90-9F-33-EB-34-98 90-9f-33-eb-36-ff
ARP Reqeust(192.168.14.14, MAC ?) -> 맥주소 아시는 분~ SA 90-9F-33-EB-34-98 DA FF-FF-FF-FF-FF-FF 그거 나야! 내 맥주소 이거야! <- ARP Response(192.168.14.14 MAC 90-9f-33-eb-36-ff) SA 90-9f-33-eb-36-ff DA 90-9F-33-EB-34-98
수신된 맥주소는 내 컴푸터의 ARP Table에 저장되고 다음통신에 사용된다.
#ARP Table#
192.168.14.14 90-9f-33-eb-36-ff
A -> B
SA 192.168.14.11 DA 192.168.14.14 -------------------------- IP 에서 사용 L3 에서 사용 SA 90-9F-33-EB-34-98 DA 90-9f-33-eb-36-ff -------------------------- ETH 에서 사용 스위치 물린 엔드 끼리 통신 할때 사용
C:\Users\Administrator>arp -d #arp 테이블 지우기
C:\Users\Administrator>arp -a #arp 테이블 확인하기 ARP 항목을 찾을 수 없습니다.
C:\Users\Administrator>arp -a
인터페이스: 192.168.14.11 --- 0xd 인터넷 주소 물리적 주소 유형 192.168.14.1 50-6a-03-af-29-3c 동적 192.168.14.255 ff-ff-ff-ff-ff-ff 정적 224.0.0.252 01-00-5e-00-00-fc 정적
인터넷 프로토콜 스위트에서포트(port)는운영 체제통신의 종단점이다. 이 용어는 하드웨어 장치에도 사용되지만, 소프트웨어에서는네트워크 서비스나 특정프로세스를 식별하는 논리 단위이다. 주로 포트를 사용하는 프로토콜은 전송 계층 프로토콜이라 하며, 예를 들어전송 제어 프로토콜(TCP)와사용자 데이터그램 프로토콜(UDP)가 있다. 각 포트는 번호로 구별되며 이 번호를포트 번호라고 한다. 포트 번호는IP 주소와 함께 쓰여 해당하는 프로토콜에 의해 사용된다.
이는 강한나처럼 회사를 운영하거나 그에 준하는 지위에 있는 사람들이 인맥을 넓힌다는 목적의 파티이다.
영화 범죄와의 전쟁에서 최민식이 전화번호 수첩을 들고 이" 수첩만 있으면 다 할수 있어!" 라는 장면도 생각난다.
네트워킹 파티에 나가 인맥을 쌓는 이유는 정보를 교류하기위해
전화번호 수첩이 중요한 이유는 서로 연락해서 정보를 교류하기위해
네트워크 : 정보공유, 교환을 목적으로 컴퓨터와 컴퓨터가 모여서 구성된 망
2. 프로토콜
간단히 말하자면 약속 이다.
예를 들면, 중국인과 미국인이 대화를 하려면 당연히 대화가 안통 한다. 언어가 다르니까!
대화가 될려면 ?
대화가 통하게 공통으로 사용할 수 있는 언어가 필요! 예를들면, 둘다 일본어를 할줄 안다면
"우리끼리 대화 할때는 일본어로 대화하자!" <- 이게 약속
서로 대화를 하기위해 -> 서로 정보를 공유하고 교환 하기 위해
프로토콜 : 네트워크 환경내에서 데이터를 전송할때 전송방법을 정의 하는 규칙 또는 제도를 말한다.
예) TCP, UDP, IP 등등
3. 네트워크 유형
@ LAN(Local Area Network)
- 네크워크 구성 단위중 가장 작은 단위
- 내부 네트워크라고도 불린다
- 장비: 스위치, PC 랜카드, UTP 케이블 , 무선 AP
@WAN(Wide Area Network)
- 랜과 랜을 연결하는 외부 네트워크를 말한다.
- 예를 들면, 대전이라는 랜 네트워크와 부산이라는 랜 네트워크 연결 할려면 WAN이라는 외부 네트워크로 연결 한다.
- 장비: 라우터
- 프로토콜: HDLC, PPP, Frame-Relay
- KT, SKT, LG 같은 ISP업체
@ Internet
전세계적으로 연결된 네트워크 망을 말한다
보통 world wide web인 www.http 를 떠올리는데 이는 나중에 설명 하도록 하겠다
@ Intranet
기업 내부에서 인터넷과 같이 사용하는 망을 말한다. 외부 즉 인터넷 사용은 불가하고 사내에서만 가능한 망을 뜻한다.
4. 데이터 전송 방식
@ 유니캐스트
1:1 전송 방식
유니캐스트는 정보를 전송하기 위한 프레임에 자신의 MAC 주소와 목적지의 MAC 주소를 첨부하여 전송하는 방식을 말한다. 어떤 시스템이 유니캐스트 방식으로 데이터를 전송하게 되면 같은 네트워크에 있는 모든 시스템들은 그 MAC 주소를 받아서 자신의 MAC 주소와 비교 후에 자신의 MAC 주소와 같지 않다면 프레임을 버리고 같다면 프레임을 받아서 처리하게 된다. 유니캐스트 방식은 가장 많이 사용하는 방식으로 한 개의 목적지 MAC 주소를 사용하고 CPU 성능에 문제를 주지 않는 방식이다.
@ 브로드캐스트(Broadcast) 브로드캐스트 방식은 로컬 네트워크에 연결되어 있는 모든 시스템에게 프레임을 보내는 방식을 말한다. 브로드캐스트 방식의 경우 브로드캐스트용 주소가 미리 정해져있고, 수신 받는 시스템은 이 주소가 오면 패킷을 자신의 CPU 로 전송하고 CPU 가 패킷을 처리하는 방식이다. 모든 시스템에게 패킷이 전송되므로 트래픽이 증가하고 CPU 도 패킷을 처리해야 하므로 성능에 저하가 생긴다. 브로드캐스트 방식은 통신하고자 하는 시스템의 MAC 주소를 알지 못하는 경우, 네트워크에 있는 모든 시스템에게 알리는 경우, 라우터끼리 정보를 교환하거나 새로운 라우터를 찾는 경우 등에 이용이 된다. @ 멀티캐스트(Multicast) 멀티캐스트는 네트워크에 연결되어 있는 시스템 중 일부에게만 정보를 전송하는 것으로 특정 그룹에 속해 있는 시스템에게만 한 번에 정보를 전송할 수 있는 방법을 말한다. 멀티캐스트는 라우터가 멀티캐스트를 지원해야만 사용 가능하다는 단점이 있다. 그룹 통신을 위하여 다중 수신자들에게 동일한 데이터를 전송하고자 할 경우 유니캐스트 전송 방식을 이용한다면 전송하고자 하는 데이터 패킷을 다수의 수신자에게 각각 여러 번 전송해야 하며, 이러한 동일한 패킷의 중복 전송으로 인해 네트워크 효율이 저하된다. 또한 수신자 수가 증가할 경우 이러한 문제점은 더 커지게 된다. 반면 멀티캐스트 전송이 지원되면 송신자는 여러 수신자에게 한 번에 메시지가 전송되도록 하여 데이터의 중복 전송으로 인한 네트워크 자원 낭비를 최소화할 수 있게 된다. 멀티캐스트 전송이 일반적인 유니캐스트 인터넷 응용 분야와 다른 점은 우선 그 전송 패킷에 있다. 일반적으로 TCP/IP 상의 인터넷 응용 프로그램은 데이터의 송신자가 이를 수신할 수신자의 인터넷 주소를 전송 패킷의 헤더에 표시해 패킷을 전송한다. 그러나 멀티캐스트 전송을 위해서는 헤더에 수신자의 주소 대신 수신자들이 참여하고 있는 그룹 주소를 표시하여 패킷을 전송한다. ▶ 멀티캐스트 특징 - 멀티캐스트 그룹 단위로 묶어 그 그룹의 Host 들은 동시에 데이터를 받을 수 있다. - UDP 를 사용하여 전송함으로 신뢰성을 보장받지는 못한다. - Client 에서 멀티캐스트를 사용하는 Application 을 시작하면 멀티캐스트 IP 주소와 멀티캐스트 MAC 주소를 라우터에 등록함으로 멀티캐스트 그룹에 등록된다. - 하나의 Client 에서 여러 멀티캐스트 주소를 수용할 수 있다. 즉 여러 가지 멀티캐스트 데이터를 동시에 받을 수 있다. - Server가 멀티캐스트 주소로 데이터를 전송 중에 있을 때 중간에 Client 가 끼어들어도 처음부터 데이터를 받을 수 없고 중간부터 데이터를 받게 된다.