IPV6 usage study - network-programming

I have a pretty overview on the TCP/IPv4 stack. I am planning to get into the next version of IP which is IPV6 which is for the future I believe. I really need some valuable inputs from anyone as to which site or link or maybe I can do something practically by using some kind of simulators to learn something like atleast some UDP6 stack or TCP 6 stack.
Any valuable inputs?

See the following ipv6 site - it has links to specifications, ipv6 enabled applications and ipv6 stack implementations:
http://www.ipv6.org/

Although I am a bit late to reply but as I found this question so generally I am replying here.
The best simulation software available at the time of writing this answer is GNS3 and you can download it from GNS3.net for free.
It simulates real routers IOS images and you can create real routing packets environment and learn a lot even for IPv6 routing protocols.
I literally created my CCIE LAB environment through this fantastic software and you can also connect those GNS3 routers to your physical switches.
I also wrote some articles in my blog related to IPv6 and you may read few of the articles below
Understanding IPv6 Addressing
IPv6 configuration

Related

ESP32: Is it possible to make a bridge ETH-WIFI

i m using olimex esp32-poe-iso and i m trying to achieve the following:
HOME ROUTER ====== (WIFI) ====== (STA):esp32-poe-iso:(ETH) ====== (ETH cable)===== Jetson Nano
im not trying to find a piece of code here. I m just trying to be sure that it's doable.
i have been trying for days now with no luck.
All the docs and examples out there explain the opposite way around. which worked fine for me.
HOME ROUTER ====== (ETH) ====== (ETH):esp32-poe-iso:(WIFI-AP) ====== (WIFI)===== Jetson Nano
Any clue is really appreciated
You want to build a WiFi bridge which allows your wired Jetson Nano board to connect to your WiFi network? Sure, it's possible. Not simple, but definitely doable (assuming you know your networking). At least one person has source code, but googling for "esp32 wifi bridge" brings up quite a few resources.
I'm not sure that the Espressif WiFi library gives you enough control to do it transparently. So we're probably talking about building a NAT box, which requires translating the addresses for your wired client and forwarding the packets. Maybe also a DHCP server, if you don't like to assign IP-s manually. There's a sample NAT implementation here: https://github.com/martin-ger/esp32_nat_router
A more practical solution would be buying a WiFi router which can work as a bridge for Ethernet devices. Some very cheap WiFi routers have this functionality these days (I vaguely recall a TP-LINK device which cost around 20€).

LoRa Node registrating at LoRa Gateway

I am starting a project for my university and starting to play around with the LoRa stuff, working through this pdf , filled with some examples.
I've used the code examples from page 47 (Client, Server). It's working fine but I don't understand how the node is registering at the gateway. I mean, where is the part in the code?
The links you have posted to Github appear to be using the RFM95 module in a peer to peer fashion rather than utilising LoRaWAN style communication. Can I suggest you try using the LoRa LMIC library instead, this has a full implementation of LoRaWAN and can be used with TheThingsNetwork & RFM95 modules - https://github.com/matthijskooijman/arduino-lmic.
As for the gateway I am unsure of the Dragino gateway hardware / software, however I believe they are capable of acting as a Single Channel Gateway / Packet Forwarder. There is a decent forum thread here discussing how to use the Dragino gateway with TTN, https://www.thethingsnetwork.org/forum/t/dragino-gateway/6154 and the Dragino wiki has a comprehensive how to guide http://wiki.dragino.com/index.php?title=Connect_to_TTN. However there are short comings with single channel gateways, and some do not support downstream messages, so depending on your use case this may or may not be so useful.
If you can describe more in depth your use case I'd be keen to offer up more advice / ideas, I use LoRa a fair bit, but I only have experience with the Arduino Dragino hats not their gateway.

Is there a published protocol standard for home environment and appliance control via the Internet?

I am starting to look into home environment and appliance control via the Internet.
I have an infotainment background that includes audio transport in distributed infotainment systems via MOST and Ethernet. For the latter I have experience with IEEE1722 (IEEE 1722 - LAYER 2 TRANSPORT PROTOCOL WORKING GROUP FOR TIME-SENSITVE STREAMS).
As I looked into IoT and the home domain (I use that term loosely to include appliances, security, environment, landscape maintenance) I had hoped to find a standard command and control protocol, for example something analogous to IEEE1722.1, but applicable to command and control in the home domain.
I did some searching and I see there are a number of packaged solutions (i.e. products and software recommendations) available. There are also a number of kits out there (e.g. RPI3 and Beaglebone Black, TINI) that would be useful platforms for a type of home controller however I found no mention of a standard protocol for command and control of the home apps. We have the lower layer protocols like IP, TCP, UDP, SSL, HTTP ... etc but as far as I could tell no standard application layer protocol.
Does such a protocol standard (either formal or de-facto) exist? If so could you please provide a pointer to it?
BTW there was a hit on my search in Stackoverflow:
"Is there any standard for Smart Home?" But from what I could tell that was someone asking for the answer to questions posed by their classroom lecturer. It had -1 votes. My questions is not that.
Thanks in advance.
Jim
I did further searching and found https://developer.apple.com/homekit/ and http://www.knx.org/media/docs/Flyers/KNX-Basics/KNX-Basics_en.pdf and https://www.electronichouse.com/smart-home/home-automation-protocols-what-technology-is-right-for-you/#comments Thanks

Add Fing like/Network Scanning to Application

I have seen a lot of questions related to obtaining a list of devices on the network and i'm not sure any of them meet my needs. I need to be able to show a list of devices connected to the network, with IP address/Mac address. I've seen ARP cache mentioned, as well as scanning a subnet mask, and ICMP broadcast. Which of these is the best way to get this functionality? I have concerns about some of the solutions I have seen posted, as most mention non-public API's it would seem. A point in the right direction would be greatly appreciated, I am also not highly familiar with straight C, which a lot of the mentioned solutions use.

iOS to iOS device connection through streams (over IP-Address)

As a final school-graduation project I try to develop a kind of spying-car. Which means there is an iPhone placed on a little LEGO-car and an iPad used as a "steering wheel" for the car. Also it is planned to transmit Audio and Video from the iPhone's microphone/camera to the iPad (more than the steering data vice versa).
In the first place the connection from iOS to iOS should be established over a local WiFi network and later - if possible - over 3G (by using the iOS devices network-IP and a DNS server to deal with frequently changing addresses).
My question is: which technology do you recommend using? I read about GameKit, peer-to-peer and so on, but I think these technologies are too abstract for later being able to communicate over 3G. I guess I need to go a little deeper into the low levels of the communication progress. Any suggestion that could bring me a step forward is highly appreciated! (also regarding other parts of my project)
One more thing: Some user suggested using a third party service and to route the sent (video) data over an external server. If possible, I'd rather not use any "middle man". It should just be a basic server-client communication where the iPad is the server and the iPhone the client.
It is kind of an open ended question, but interesting.
First of all, GameKit do have 3g p2p support, see here:
https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/GameKit_Guide/Matchmaking/Matchmaking.html
It will handle the peer-to-peer addressing and establisment of the socket. It can also handle voice chat, but I personally never tried this feature so I can't say if it is feasible in your case.
One idea is to leverage existing video-chat services. This will give you a low-latency audio/video channel with peer-to-peer addressing (well, likely using a central server).
Apple's FaceTime is such a service, but there is no public API to it (AFAIK). Same goes for Skype and Google.
There are some paid services that look like they have nice iOS APIs:
http://tokbox.com/platform
http://docs.weemo.com/sdk/ios/
You have to figure out a way to transmit control commands to the peer iPhone, I did not see if the services above had any possibility of sending text messages/arbitrary data.
Tokbox has a free trial so you could try it out and see if it works for you.
I would go for GameKit if this is a hobby project on a budget and there is time for hacking, and probably look into a more high-level API if there is a deadline...
sorry for writing this as an answer, but i don't have enough rep to comment...
i'm working on a similar project and i currently don't have any advice regrading video-streaming, however, from what i read (extensively) i came to the conclusion that i need to use p2p connection between devices for better performance and use socket programming in order to achieve this (although not the most easy to implement choice).
I considered using GameKit which i think will probably answer most of your needs as Krumelur pointed out. but in my case, eventually the app will be cross platform so i had to use low level network programming. you can check out my question here to see the sources i used to try and make the connection between 2 peers, hopefully you'll have better luck than me...

Resources