Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 컴퓨터네트워크
- 데이터 파이프라인
- AWS
- airflow.cfg
- Go
- linux
- sql
- http
- 데이터 엔지니어링
- dockerfile
- S3
- redshift
- 데브코스
- 컴퓨터 네트워크
- TCP
- 종류
- 데이터엔지니어링
- HADOOP
- Docker
- 자료구조
- PYTHON
- airflow
- 가상환경
- 운영체제
- 데이터베이스
- Django
- 파이썬
- 데이터 웨어하우스
- 정리
- TIL
Archives
- Today
- Total
홍카나의 공부방
[컴퓨터 네트워크] 8. ARP Protocol과 Python으로 요청 보내기 본문
ARP 프로토콜은 네트워크 계층의 프로토콜이다.
IP에서 라우팅 테이블을 참조하여 패킷을 보내야하는 논리주소를 리턴하면
ARP는 이 논리주소에 해당하는 호스트의 물리주소를 매핑하는 역할을 한다.
네트워크의 장치가 다른 장치와 통신해야 하는 경우, 올바른 장치로 전송하려면 대상 장치의 MAC 주소를 알아야 하기 때문이다.
ARP는 요청과 응답으로 패킷의 유형이 나뉜다.
ARP 요청은 보통 broadcast 방식으로 전달이 되며,
같은 물리네트워크에 연결되어 있는 호스트에게 모두 전송이 된다.
( 대상 호스트의 논리 주소를 알고 있다면 1:1 방식인 Unicast 방식으로 전송해도 무방함. )
네트워크의 브로드캐스트 주소로 ARP 요청을 보내면
네트워크의 모든 장치가 요청을 수신하고 해당 IP 및 MAC 주소로 응답한다.
이를 ARP "프로브" 또는 "스위프"라고 한다.
ARP 응답은 ARP 요청을 받은 Destination 호스트가
MAC주소를 Source host로 보내는 유니캐스트 방식(1:1) 전송이다.
브로드캐스트 방식으로 ARP 요청을 뿌리는 것은
네트워크 검색, 문제 해결 및 보안 감사에서 일반적으로 사용된다.
파이썬 예제 코드는 다음과 같다.
# for Windows and Linux:
import os
def send_arp_request():
os.system("arp -a")
send_arp_request()
# for MacOS:
import subprocess
def send_arp_request():
output = subprocess.run(["arp", "-a"], capture_output=True, text=True)
print(output.stdout)
send_arp_request()
ARP를 이용한 네트워크 공격(ARP Spoofing 등..)도 있는데, 관심이 있다면 아래의 유튜브를 참고하며 공부하면 좋다.
(꼭 본인 소유의 공유기, 컴퓨터, 스마트폰을 이용해야 한다!)
반응형
'Computer Network' 카테고리의 다른 글
[컴퓨터 네트워크] 10. DHCP 개념과 과정 (0) | 2023.04.18 |
---|---|
[컴퓨터 네트워크] 9. 인터넷, WWW, HTTP, HTTPS, SMTP, IMAP, POP (0) | 2023.04.18 |
[컴퓨터 네트워크] 7-5. IPsec과 SSL (0) | 2023.01.23 |
[컴퓨터 네트워크] 7-4. 네트워크 Entity 인증 (0) | 2023.01.23 |
[컴퓨터 네트워크] 7-3. 네트워크 보안 서비스 종류 (0) | 2023.01.23 |