How does EAP-SIM and RADIUS work together? - radius

I would like to know how does EAP-SIM and RADIUS work together.
Assume we have something like this:
[client-1]----+
|
[client-2]----+----[AP]----------[RADIUS Server]------------[HSS]
|
[client-3]----+
|- Diameter -|
EAP-SIM and RADIUS should work between the client and the radius server, right?
Is one above the other? (like IP & TCP)
What is the content of the message(s) sent during the negocation(s) for both EAP-SIM and radius? (let's assume client-1 wants to connect and need to authenticate. The HSS is the component used by the RADIUS to check the 'credentials')

The EAP SIM protocol operates between the client (supplicant) and the RADIUS server. The RADIUS server will use the IMSI or ephemeral IMSI it got during the start of the EAP-SIM conversation to send a separate request to the HSS requesting authentication vectors.
The HSS will return multiple sets of UMTS quintuplets or GSM triplets. The RADIUS server forwards the RAND component from a variable number of these vectors (2-3 in GSM) to the client, which feeds them to the SIM card to produce challenge responses.
The challenge responses and authentication vectors never go across the wire in plaintext, instead a PRF (Pseudo Random Function) is used to derive session keys. This derivation occurs on both the RADIUS server, and the client (supplicant).
If the SIM card does not produce the correct responses for the RAND challenge, then the session keys will not match and authentication will fail.
Note that if the HSS returns UMTS vectors, and EAP-SIM is being performed, there's a separate step to derive GSM vectors from the UMTS vectors.
Example code for the derivation is here: https://github.com/FreeRADIUS/freeradius-server/blob/v4.0.x/src/modules/rlm_eap/types/rlm_eap_sim/sim_vector.c#L157

Related

How to simulate two OFDM Users with low complexity FFT/IFFT?

I have two User one of them sending over freq (0-B] and the other transmit over (B-2B]. Both of them are using OFDM and each one has Nc subcarriers. I wanted to simulate the received signal using Matlab.
One way to implement, I beleive is that I say user one have 2*Nc subcarriers and only use the first Nc subcarriers and the second user also has 2Nc subcarrier and only ise subcarriers [Nc+1-2Nc). in this case I should use FFT/IFFT size of 2Nc:
Received signal would be Y = ifft([d_1 0*d2],2Nc)+ifft([0*d_1 d_2],2Nc) where d_1 and d_2 are the data of the first and the second users. and at the receiver I can compute d=fft(Y, 2Nc) and the first half would be for user1 and second half for user2.
But I want to use FFT size of Nc, i.e., compute ifft(d_1,Nc) and ifft(d_2,Nc).
If I add these two iffts directly, I will get incorrect results as the IFFT results does not show that the two data occupying different subcarriers.
My question is, in this case, how I should change (probably up-convert) the ifft result of the second UE?
Furthermore, after constructing the received signal, what operation do I need to get back the transmitted data? Should I again use fft(y,2Nc) ?
Your help is highly appreciated.
Regards,

Soft hand off in CDMA cellular networks

Hi,
In the CDMA cellular networks when MS (Mobile Station) need to change a BS(Base Station), exactly necessary for hand-off, i know that is soft hand-off (make a connection with a target BS before leaving current BS-s). But i want to know, because connection of MS remaining within a time with more than one BS, MS use the same code in CDMA to communicate with all BS-s or different code for different BS-s ?
Thanks in advance
For the benefit of everyone, i have touched upon few points before coming to the main point.
Soft Handoff is also termed as "make-before-break" handoff. This technique falls under the category of MAHO (Mobile Assisted Handover). The key theme behind this is having the MS to maintain a simultaneous communication link with two or more BS for ensuring a un-interrupted call.
In DL direction, it is achieved using different transmission codes(transmit same bit stream) on different physical channels in the same frequency by two or more BTS wherein the CDMA phone simultaneously receives the signals from these two or more BTS. In the active set, there can be more than one pilot as there could be three carriers involved in soft hand off. Also, there shall also be a rake receiver that shall do maximal combining of received signals.
In UL direction, MS shall operate on a candidate set where there could be more than 1 pilot that have sufficient signal strength for usage as reported by MS. The BTS shall tag each of the user's data with Frame reliability indicator that can provide details about the transmission quality to BSC. So, even though the signals(MS code channel) are received by both base stations, it is achieved by routing the signals to the BSC along with information of quality of received signals, which shall examine the quality based on the Frame reliability indicator and choose the best quality stream or the best candidate.

How to retrieve signal quality measures in iPhone?

In particular I would like to retrieve:
1. RSSI (received signal strength indicator)
2. RSCP (signal level),
3. SC (Scrambling Code) and
4. EcNo (Signal To Noise Ratio)
Which API function from iPhone SDK can help me to retrieve these values.
Further to your comment above, there is also a GetSignalStrength function referenced among the private functions here.
But if you use one of these GetSignalStrength functions how do you know what you are really getting?
I can't find any documentation, but I would question the assumption that it will always be RSSI.
There is no standard for calculating the number of bars that are shown on a screen. However, there is a standard for calculating the network strength, when the mobile phone decides whether or not to move over to another cell.
For GSM, this standard is RSSI.
For UMTS, it is CPICH RSCP.
For LTE, it is RSRP.
Therefore, if you have 1 single function, that purports to return RSSI in all cases, I ask myself whether it will actually return RSCP when on a UMTS network, and RSRP when on an LTE network. In other words, is it a fudge that over-simplifies the true case?
The 3GPP AT command AT+CESQ (defined here) retrieves network strength. It has parameters that allow for any of the three network types, and you would expect that if you are currently registered on a UMTS cell (for example), that it would return UMTS parameters only. But I can't see any evidence of an equivalent way to get all the data across iPhone APIs.
The next obvious question to ask would be "Can I use that AT command on the iPhone?" Someone has asked that on StackOverflow here. I don't know if AT+CESQ is supported on the iPhone.

iOS Detecting connection speed or type [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Iphone detect 3g or wifi
is there a way to get the current network speed or if the device is on EDGE/3G/GPRS?
I can use Reachability to distinguish WiFI from WMAN but that's not enough for my application.
If you really need to know, you will have to test for it.
Setup a connection to a known server that has low latency. In a separate thread, mark the time (Time A) and send a packet (make sure it's one packet). Wait on that thread. Mark the time of the first packet (Time B). Read the data until finished. Mark the time of the last packet (Time C). Make sure the server response spans at least three packets.
Time B - Time A is a very rough estimate of latency.
Time C - Time B is a very rough estimate of bandwidth.
Because you want to be accurate as possible, use the lowest level of network access you have available (I believe on the iPhone this is sockets). Use random data blocks of fixed lengths as both your request and response. A few bytes for the request should suffice, but the response needs to be well constructed. Make sure the server sends a small first packet, then a sequence of packets that is large enough to fill three or more.
At that point you will need to test. Test, test, test, and test. Test on the different network types, test with different amounts of network traffic, test with switching networks, and test anything else you can think of.

On Demand Routing Protocol

I'm trying to code Ad Hoc On Demand Distance Vector (AODV) Routing Protocol in Matlab. I'll briefly describe how the protocol works:
This protocol can be used for mobile ad hoc networks. The source initiates a route to the destination whose IP is known. The source node broadcasts a Route Request (RREQ) to it's first hop. If any node within the first hop (TTL), knows the the destination, or a route to the destination, a Route Reply (RRP) is forwarded to the source. In case, any route is found broken, a Route Error (RERR) message is generated to the destination. The source selects the shortest (least hop ) path to the destination to deliver the packets. If, the source doesn't get any RREP within a specified time, the TTL is increased and new RREQ is sent. The wiki link is here for detail description: [AODV_Wiki][1]
EDIT The coding is entirely dependent on the connection of nodes with each other as was stated in the hint. I'm finalizing the code. I think, Ill upload shortly.
Hint: Distance Vectors algorithms work by maintaining a vector of distances in each network node. The distane vector measures the distance from the current node to every other node in te network. The algorithm works by iteratively updating this vector.
Combining all of these distance vectors into a matrix, you get a matrix where element i,j measures the distance between node i and j.
So I would start with computing the connectivity matrix a[i,j]=1 if i can directly communicate with j, 0 otherwise -- and proceed from there.