구글 검색 100% 활용하기
google에서 site:cloudshark.org fragmentation ip 를 검색하면 나오는 사이트
site:github.com fragmentation pcap
fragment 된 파일들 찾을 수 있음
구글에 intitle:"index of" 이력서 검색하면 남의 데이터가 봐짐..
site, filetype, inurl, intext, 등의 키워드를 사용하여 구글을 검색하면 기존에 보이지 않던 다양한 정보에 접근이 가능하게 됨
검색을 위한 명령어처럼 생각하면 좋을 듯 하다
예시) site:jp filetype:inc mysql_connect 디비 접속 사이트까지 나옴
UDP(User Datagram Protocol)
단순하고 빠름(교섭 단계가 없음)
- 패킷이나 흐름 제어, 단편화 및 전송 보장 등의 기능 등을 제공하지 않음
- 헤더는 TCP헤더에 비해 간단
- 요청 메시지와 응답 메시지로 구성
성격 급한 한국인을 위한 찰떡맞춤 네트워크이지만.. 어디까지 보냈는지, 상태는 어떤지 표시하는게 없는게 단점
(TCP에 왜 Sequence Number, Acknowledgement Number가 있는지 알 수 있는 부분)
네트워크 프로토콜 - TCP(Transmission Control Protocol)
운영체제는 네트워크를 통해 들어오는 데이터를 메모리에서 받음, memory(back log = queue)
메모리 공간 내에 일정 영역에 정책을 걸어두고, 그곳을 거쳐가게 하는 방식으로 처리
이러한 데이터는 os 레벨까지 넘어가지 않고, 메모리 상에서 처리되므로, 추가적인 지연시간이 발생하지 않음
와이어샤크는 이 memory back log를 카피해서, os 영역에서 확인하는 것인데 이것도 무조건 다 카피할 순 없는게, 네트워크가 빠르게 지나간다면 보지 못할 수도 있음
그렇다고 back log를 실시간으로 볼 수는 없음. 메모리 자원에 접근하려면 권한이 필요한데, os단에서 다루기 위해 준비하는 동안 패킷이 queue를 지나가버리기 때문
TCP Header 구조
- TCP Control Flags : 8bit, 제어 플래그
- CWR(Reduced) : Congestion Windows
- ECE : ECN Echo, Congestion Windows
- Urgent : Urgent Point 필드 사용
- Ack : Acknowledgment number 필드 사용
- Push : 상위 애플리케이션 데이터가 있음
- Reset : 강제 세션 종료(비정상적), 해당 서비스를 하지 않음
- Syn : 동기화 하여 세션 시작
- Fin : 세션을 종료함(정상 종료)
- Windows size : 16bit, TCP header + data 전송 중 손상되지 않았는지 확인
- Urgent Pointer : 16bit, 긴급 데이터의 마지막 바이트를 나타냄
- Options : 가변길이. 4byte 단위, TCP header에 없는 정보를 송신할 때 사용
UDP의 단점을 극복하기 위해 노력한 TCP Header 구조
Flags를 통해 통신의 상태를 계속 나타내줌(UDP는 그런거 없음)
TCP 연결 관리
- 연결을 사용해 응용 프로그램을 식별
- 송신자 또는 수신자와 같은 종단을 포트 번호 및 호스트 IP 주소로 정의
- 종단간 통신을 위한 TCP 연결은 양 종단에 의해서 정의
모든 단말기(인터넷이 가능하고, 운영체제가 있는)는 header 정보를 받으면 처리할 수 있는 방법이 운영체제 단에서 구성되어 있음
3-way Handshake(State Diagram 상단)
(WireShark) 192.168.40.6에서 browser로 192.168.40.31로 접속한 예시
맨 좌측이 index 인데, 시간 순서에 따라 SYN, SYN+ACK, ACK 가 표기 된걸 맨 오른쪽에 볼 수 있다
접속 종료시 4-way Handshake (State Diagram 좌측하단)
ICMP
오류에 관한 처리를 지원하는 프로토콜
- IP는 신뢰성을 보장하지 않으며, 네트워크나 라우터에 에러 발생 시 대처 불가능해서
- 수신 측에서 송신 측으로 데이터 사고에 대한 내용 전달이 필요했기 때문
site:cloudshark.org icmp echo
ping 8.8.8.8 의 경우
통신의 상태를 전달해줌. (wire shark 하단 창에서, Internet Control Message Protocol 토글 메뉴 확인)
Type과 코드에 따라 목적지에 도달했는지, 도달하지 못했는지를 볼 수 있음
Type: 3 (Destination unreachable), Code: 3 (Port unreachable)
또는 Type: 0 (Echo (ping) reply), Code: 0 등으로 표시함
타입으로 결과와, 오류일 경우 Code로 오류 종류를 표시함
ICMP 타입에 대한 스펙을 확인할 수 있는 홈페이지, 코드 넘버에 대한 해석 필요할 때 참조하자
개발자 기준 주로 사용하게 되는 Type 넘버 (0, 3, 5, 8)
IGMP
multicast의 대명사로 생각하면 좋음, 그룹핑 하는데 특화된 프로토콜
winamp, 소리바다 등 이전의 방송시스템에서 IGMP를 사용했었음.
IPSEC
site:cloudshark.org ipsec 구글에서 검색
가상네트워크를 사용하면 통신하는 192.168.140의 같은 네트워크처럼 보이지만, 다른 지역에 있을수도 있음(핫라인)
VPN + (터널링, 암호화) 사용하는 프로토콜로, 기밀성과 무결성에 대한 프로토콜
암호화가 되어있으면 빠른망을 사용해서 전송도 할 수 있음 예) UDP
3계층에서 IPSEC
4계층에선 SSL VPN, 주로 키 인증을 활용하게 됨
4계층
포트가 가장 중요한 계층이라고 볼 수 있음, 가능하면 관등성명처럼 포트와 서비스를 연관지을 수 있을 것
PORT
해당 홈페이지에 가면 PORT 사용에 대한 레퍼런스를 참고할 수 있다
- System Ports(0-1023) : root / admin 권한으로 프로그램을 바인딩( 앞에 있는 권한으로 프로그램을 실행시키는 의미)
- User Ports(1024-49151) : 사용자 권한으로 프로그램을 바인딩
- Dynamic and/or Private Ports(49152-65535) : C/S 구조에서 client 측에 할당되는 포트
PORT 확인
CMD에서 netstat -an을 치면 현재 포트 사용을 확인할 수 있음
Windows
netstat -ano
netstat -anob(cmd 관리자 권한 동작 후)
netstat -ano | findstr :포트넘버 (리눅스의 grep 같은 것)
Linux
netstat - antp (tcp) p는 프로세스
netstat - anup (udp)
netstat -antp | grep :포트넘버
DNS
확인하는 순서로(일반적인 순서로 바뀔 수 있음)
- cache에 저장되어 있는 dns를 확인(브로드 캐스트를 줄이기 위한 장치) cmd에서 ipconfig /displaydns, cache에 저장된 dns를 초기화 하는 명령어는 ipconfig /flushdns
- hosts file(C:\Windows\System32\drivers\etc\hosts), (수정하려면 관리자 권한으로) : 개발자들이 쓴다면 hosts 파일을 수정해서, 내가 사용할 도메인으로 적용해둔다면 실제 서비스에 도메인을 연결한 것 처럼 사용해볼 수 있을 것임
- 외부 dns server 확인
파일에 자주가는 사이트를 지정해서 좀 더 속도를 높힐 수 있음
번외
http 프로토콜 변천사
http -> https -> HSTS -> HTTP3(QUIC)
HTTP는 원래 암호화 되어 있는 것이 아니기 때문에 특정 프로세스를 활용해 암호화를 한다.
HTTP3버전의 프로토콜은 기존 TCP 기반에서 UDP 기반으로 바뀐 프로토콜이다
QUIC
- 암호화가 프로토콜의 일부 기능으로 포함
- 스트림 연결과 암호화 스펙등을 포함한 모든 핸드쉐이크가 단일 요청/응답으로 끝
- 패킷 개별적으로 암호화, 다른 데이터 부분의 패킷을 기다릴 필요가 없음
- 통신이 멀티플렉싱 되며, 이를 이용 HOLB를 극복가능
- QUIC는 운영체제 커널과 독립적으로 응용 프로그램 공간 내 구현 가능, 따라서 데이터 이동에 따른 컨텍스트 전환에 의한 오버헤드 X
- Source Address 무관하게 서버에 대한 연결 고유하게 식별하는 연결 식별자가 포함 되어 있음, IP 주소 변경되어도 커넥션 유지 가능
'23년 이전 글 > 네트워크' 카테고리의 다른 글
HTTP (0) | 2022.07.15 |
---|---|
DNS, Terminal,Routing ,Http, Ftp, Web, Application (0) | 2022.07.14 |
Information Protocol, IP (0) | 2022.07.12 |
OSI 7계층, 프로토콜, 캡슐레이션 (0) | 2022.07.11 |