
ioc 파일에서 "Middleware and Software Packs"탭에서 "LWIP"를 누른다.
(LwIP = light weight ip)
"enalbe"시켜준다.
그러면 여러가지 통신 옵션이 나온다. 그중에 눈여겨 볼 것은 다음과 같다.
"General Settings"탭을 누른다. 거기보면 DHCP(Dynamic Host Configuration Protocol)이 있다. 이 프로토콜 때문에 공유기를 껏다 켜는 것으로 해당 공유기에 연결된 디바이스에게 유동IP를 할당해준다.
하지만 우리는 DHCP를 쓰지 않고, 고정IP로 실습을 진행할 것이다.
그러므로 LWIP_DHCP 옵션을 Disabled 시켜준다.
그리고 나서 직접 고정IP를 할당해줄 것이다.

이제부터 내 로컬 컴퓨터와 STM32는 TCP/IP 통신을 통해 데이터를 주고 받을 수 있게 될 것이다.
상세한 최종설정은 다음과 같다.

근데 코드 제너레이션이 안된다... 아무래도 "Platform Settings"를 설정을 해줘야 올바르게 코드 제너레이션이 되는거 같은데 말이다...
수업자료


실질적으로 TCP/IP가 주소를 찾아가는 방식은 32비트 혹은 64비트의 주소를 찾아갈 뿐이다. 그런데 우린 www.naver.com같은 이름을 주소창에 쳐서 찾아간다. www.naver.com을 특정IP에 바인딩? 혹은 alias? 해주는 느낌인 것인데, 이것을 담당해주는 것이 바로 DNS(Domain Name Service)서버이다.

패킷을 암호화 하지 않으면, wireshark 같은 프로그램으로 패킷을 하나하나 들춰봐서 금융정보 같은 중요 정보들을 죄다 염탐할 수 있게 된다. 그래서 Presentation layer에서 암호화 및 복호화 작업이 필요하게 된다.
바로 패킷에 대한 보안이 안되서, 그 내용을 까서 볼 수 있기 때문이다.
그러므로 금융거래는 보안인증서가 있는 Wi-Fi나, 아니면 그냥 LTE를 통해서 통신사가 제공하는 네트워크 통신을 통해서 하는 것이 안전한 것이다.
하드웨어 어드레스와 소프트웨어 어드레스가 커플링이 되어있어야지 제대로 통신이 된다. IP Address만 생각하고 Mac Address를 간과하면 안된다.

결국 네트워크 전송 플로우는 최초의 응용계층에서 Data가 시작해서 각 레이어를 거칠 때마다 Data의 앞에다가 계속 헤더를 붙여주면서 물리 계층까지 내려갔다가, 상대편 네트워크 노드에 가서 거꾸로 헤더를 참조하면서 header를 하나씩 떼가면서 응용계층까지 올라가서 값을 받게 되는 것이다.
그림으로 보면 다음과 같다.



서브넷마스크로는 C class를 많이 쓴다. 우리 서울기술교육센터도 C class로 서브넷 마스크를 지정하여 사용하고 있다.
서브넷팅이란 간단하게 말하자면, IP 주소를 효율적으로 나누어 사용하기 위한 방법을 일컫는 말이다.

"서브넷 구분비트"로 서브넷을 구분하여 사용할 수 있다.
아래 그램을 참고하면 우리 서울 기술 교육센터에서 대체 어떻게 층마다 IP가 할당된 것인지 대충 느낌을 잡을 수 있게 된다. 결국은 서브넷을 이용하여 아이피를 할당한 것이다.


브로드캐스트 주소는 특정 Network 영역에 속하는 모든 호스트들에게 전달 가능한 주소를 의미한다.
예를 들어 C Class IP주소 192.168.3.150\26이라는 IP가 있을 때,
네트워크 영역인 192.168.3.128 ~ 192.168.3.191에 해당하는 모든 호스트들에게 동시에 정보를 뿌릴 수 있는 주소를 말하는 것이다.
보통은 서브넷 주소 영역의 맨 마지막 주소를 브로드캐스트 주소로 사용한다.
예를 들어 서브넷 마스크가 255.255.255.240으로 설정된 경우가 있다고 치자. 그러면 서브넷마스크가 240(=0b11110000)이기 때문에 서브넷 비트를 제외한 호스트 영역은 2^4 만큼의 영역이 된다. 그 하나의 영역에서 마지막 31번째 주소가 그 서브넷 영역의 브로드캐스트 주소가 되는 것이다.
공유기 관리 내부에서 관리되던 IP에서 밖으로 나가려는 패킷이 공유기에 도착하면, 공유기는 내부에서 관리되던 IP 주소 헤더 부분을 공인IP 주소 헤더로 바꿔치기 해서 밖으로 내보내준다.
이로써 외부에서는 공유기를 통해서 헤더가 바꿔치기된 패킷을 받게 되고 그로써 통신이 가능하게 된다. 이것이 바로 공유기의 핵심 기능이다.
밖에서 공유기 관리 내부망으로 들어오려는 패킷도 마찬가지다. Source IP라고 불리는 헤더부분이 원래 공인IP로 되어있는데, 그 부분을 공유기 내부에서 관리되는 IP 주소 헤더로 바꿔치기해서 내부로 들여보내준다.
결국 공유기가 하는 일은 내부 망과 외부망에서 패킷이 왔다갔다 할 때, 그 사이에 매번 interrupt를 걸어서 공인 IP부분(Source IP부분)을 계속해서 바꿔치기 해주는 것이다.

여기서 바꿔치기 할때, 기기마다 서로 다른 사설 IP를 가지고 있으므로 이것을 구분해줄 key가 쓰이는데, 여기에 주로 Mac Address가 쓰인다.
그래서 위에서 Mac Address와 IP Address가 세트라고 했던 것이다..!!